Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

numerical.c File Reference

#include <volume_io/internal_volume_io.h>
#include <bicpl/numerical.h>
#include <limits.h>

Include dependency graph for numerical.c:

Include dependency graph

Go to the source code of this file.

Defines

#define SMALLEST   1.0e-20
#define EQN_EPS   1e-9
#define IsZero(x)   ((x) > -EQN_EPS && (x) < EQN_EPS)
#define COS_60   0.5
#define SIN_60   0.86602540378443864676

Functions

public BOOLEAN numerically_close (Real n1, Real n2, Real threshold_ratio)
public Real get_good_round_value (Real value)
public Real round_to_nearest_multiple (Real value, Real multiple_value)
public int solve_quadratic (Real a, Real b, Real c, Real *solution1, Real *solution2)
public int solve_cubic (Real a, Real b, Real c, Real d, Real s[3])
private int get_roots_of_cubic (int n, Real poly[], Real u_min, Real u_max, Real roots[])
public Real evaluate_polynomial (int n, Real poly[], Real u)
private void interval_value_range (int n, Real poly[], Real u_min, Real u_max, Real *min_val_ptr, Real *max_val_ptr)
private BOOLEAN interval_may_contain_zero (int n, Real poly[], Real u_min, Real u_max)
private void check_interval (int n, Real poly[], Real u_min, Real u_max, Real accuracy, int *n_roots, Real roots[])
public int get_roots_of_polynomial (int n, Real poly[], Real u_min, Real u_max, Real accuracy, Real roots[])
private BOOLEAN polynomial_may_include_range (int n, Real poly[], Real u_min, Real u_max, Real min_val, Real max_val)
private BOOLEAN check_range (int n, Real poly[], Real u_min, Real u_max, Real min_val, Real max_val, Real accuracy, Real *u_min_range, Real *u_max_range)
public BOOLEAN get_range_of_polynomial (int n, Real poly[], Real u_min, Real u_max, Real min_val, Real max_val, Real accuracy, Real *u_min_range, Real *u_max_range)


Define Documentation

#define COS_60   0.5
 

Definition at line 240 of file numerical.c.

Referenced by solve_cubic().

#define EQN_EPS   1e-9
 

Definition at line 232 of file numerical.c.

#define IsZero  )     ((x) > -EQN_EPS && (x) < EQN_EPS)
 

Definition at line 233 of file numerical.c.

Referenced by solve_cubic().

#define SIN_60   0.86602540378443864676
 

Definition at line 241 of file numerical.c.

Referenced by solve_cubic().

#define SMALLEST   1.0e-20
 

Definition at line 38 of file numerical.c.

Referenced by numerically_close().


Function Documentation

private void check_interval int  n,
Real  poly[],
Real  u_min,
Real  u_max,
Real  accuracy,
int *  n_roots,
Real  roots[]
 

Definition at line 571 of file numerical.c.

References interval_may_contain_zero().

Referenced by get_roots_of_polynomial().

private BOOLEAN check_range int  n,
Real  poly[],
Real  u_min,
Real  u_max,
Real  min_val,
Real  max_val,
Real  accuracy,
Real *  u_min_range,
Real *  u_max_range
 

Definition at line 689 of file numerical.c.

References FALSE, polynomial_may_include_range(), and TRUE.

Referenced by get_range_of_polynomial().

public Real evaluate_polynomial int  n,
Real  poly[],
Real  u
 

Definition at line 411 of file numerical.c.

Referenced by check_voxel_for_boundary(), and get_cubic_root().

public Real get_good_round_value Real  value  ) 
 

Definition at line 80 of file numerical.c.

public BOOLEAN get_range_of_polynomial int  n,
Real  poly[],
Real  u_min,
Real  u_max,
Real  min_val,
Real  max_val,
Real  accuracy,
Real *  u_min_range,
Real *  u_max_range
 

Definition at line 737 of file numerical.c.

References check_range(), FALSE, and polynomial_may_include_range().

Referenced by check_voxel_for_boundary().

private int get_roots_of_cubic int  n,
Real  poly[],
Real  u_min,
Real  u_max,
Real  roots[]
 

Definition at line 340 of file numerical.c.

References solve_cubic(), and solve_quadratic().

Referenced by get_roots_of_polynomial().

public int get_roots_of_polynomial int  n,
Real  poly[],
Real  u_min,
Real  u_max,
Real  accuracy,
Real  roots[]
 

Definition at line 635 of file numerical.c.

References check_interval(), and get_roots_of_cubic().

Referenced by find_voxel_line_value_intersection(), and get_cubic_root().

private BOOLEAN interval_may_contain_zero int  n,
Real  poly[],
Real  u_min,
Real  u_max
 

Definition at line 540 of file numerical.c.

References interval_value_range().

Referenced by check_interval().

private void interval_value_range int  n,
Real  poly[],
Real  u_min,
Real  u_max,
Real *  min_val_ptr,
Real *  max_val_ptr
 

Definition at line 448 of file numerical.c.

Referenced by interval_may_contain_zero(), and polynomial_may_include_range().

public BOOLEAN numerically_close Real  n1,
Real  n2,
Real  threshold_ratio
 

Definition at line 40 of file numerical.c.

References SMALLEST.

Referenced by create_box_filtered_volume(), gradient_steps_minimize_function(), and perform_amoeba().

private BOOLEAN polynomial_may_include_range int  n,
Real  poly[],
Real  u_min,
Real  u_max,
Real  min_val,
Real  max_val
 

Definition at line 674 of file numerical.c.

References interval_value_range().

Referenced by check_range(), and get_range_of_polynomial().

public Real round_to_nearest_multiple Real  value,
Real  multiple_value
 

Definition at line 122 of file numerical.c.

public int solve_cubic Real  a,
Real  b,
Real  c,
Real  d,
Real  s[3]
 

Definition at line 244 of file numerical.c.

References COS_60, IsZero, SIN_60, and solve_quadratic().

Referenced by get_roots_of_cubic().

public int solve_quadratic Real  a,
Real  b,
Real  c,
Real *  solution1,
Real *  solution2
 

Definition at line 159 of file numerical.c.

Referenced by get_roots_of_cubic(), get_tessellation_with_n_points(), line_intersects_ellipsoid(), ray_intersects_tube(), and solve_cubic().


Generated on Wed Jul 28 09:11:11 2004 for BICPL by doxygen 1.3.7