Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

riso.approximation
Class Intervals  view Intervals download Intervals.java

java.lang.Object
  extended byriso.approximation.Intervals

public class Intervals
extends java.lang.Object

A class which pulls together some methods for mungeing intervals.


Nested Class Summary
static class Intervals.ScaleTooBigException
          An instance of this class is thrown when the scale of a search for the support of a function appears to be much too large.
 
Constructor Summary
Intervals()
           
 
Method Summary
static double[] effective_support(riso.numerical.Callback_1d f, double[] largest_interval, double tolerance)
          Like the other version of effective_support, except that the largest interval to be search is specified instead being constructed from the scale argument.
static double[] effective_support(riso.numerical.Callback_1d f, double scale, double tolerance)
          Returns an approximation to the support of a function.
static double[] effective_support0(riso.numerical.Callback_1d f, double[] larger_interval, double tolerance)
          This method is called by effective_support to do most of the work.
static double[][] intersection_merge_intervals(double[][] intervals)
          Constructs a list of intervals which is the intersection of the input list.
static void main(java.lang.String[] args)
          A little test program.
static double[][] trim_support(riso.distributions.Distribution p, double[][] supports)
          Sometimes calculated support intervals are too big, so try to cut off parts in which the density of the target is zero.
static double[][] union_merge_intervals(double[][] intervals)
          Constructs a list of intervals which is the union of the input list.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Intervals

public Intervals()
Method Detail

union_merge_intervals

public static double[][] union_merge_intervals(double[][] intervals)
Constructs a list of intervals which is the union of the input list.


intersection_merge_intervals

public static double[][] intersection_merge_intervals(double[][] intervals)
Constructs a list of intervals which is the intersection of the input list.


effective_support

public static double[] effective_support(riso.numerical.Callback_1d f,
                                         double scale,
                                         double tolerance)
                                  throws java.lang.IllegalArgumentException,
                                         riso.distributions.SupportNotWellDefinedException,
                                         Intervals.ScaleTooBigException
Returns an approximation to the support of a function. The target function may not be normalized; the function is nonnegative and smooth.

This method attempts to approximation the integral of the target function over a very large interval, and then to find a smaller interval (contained in the larger) such that the smaller interval contains almost all the mass in the larger one.

The hard part of the problem is searching out the peaks in the target function, without any clues about their location. This method sprinkles a lot of points on a wide interval centered on zero and tries to find evidence of peaks. So the time required for this approach is proportional to the time required to evaluate the target function.


effective_support

public static double[] effective_support(riso.numerical.Callback_1d f,
                                         double[] largest_interval,
                                         double tolerance)
                                  throws java.lang.IllegalArgumentException,
                                         riso.distributions.SupportNotWellDefinedException,
                                         Intervals.ScaleTooBigException
Like the other version of effective_support, except that the largest interval to be search is specified instead being constructed from the scale argument.


effective_support0

public static double[] effective_support0(riso.numerical.Callback_1d f,
                                          double[] larger_interval,
                                          double tolerance)
                                   throws java.lang.IllegalArgumentException,
                                          riso.distributions.SupportNotWellDefinedException,
                                          Intervals.ScaleTooBigException
This method is called by effective_support to do most of the work.


trim_support

public static double[][] trim_support(riso.distributions.Distribution p,
                                      double[][] supports)
                               throws java.lang.Exception
Sometimes calculated support intervals are too big, so try to cut off parts in which the density of the target is zero.


main

public static void main(java.lang.String[] args)
A little test program.