#include <volume_io/internal_volume_io.h>
#include <bicpl/numerical.h>
#include <limits.h>
Include dependency graph for numerical.c:
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) |
|
Definition at line 240 of file numerical.c. Referenced by solve_cubic(). |
|
Definition at line 232 of file numerical.c. |
|
Definition at line 233 of file numerical.c. Referenced by solve_cubic(). |
|
Definition at line 241 of file numerical.c. Referenced by solve_cubic(). |
|
Definition at line 38 of file numerical.c. Referenced by numerically_close(). |
|
Definition at line 571 of file numerical.c. References interval_may_contain_zero(). Referenced by get_roots_of_polynomial(). |
|
Definition at line 689 of file numerical.c. References FALSE, polynomial_may_include_range(), and TRUE. Referenced by get_range_of_polynomial(). |
|
Definition at line 411 of file numerical.c. Referenced by check_voxel_for_boundary(), and get_cubic_root(). |
|
Definition at line 80 of file numerical.c. |
|
Definition at line 737 of file numerical.c. References check_range(), FALSE, and polynomial_may_include_range(). Referenced by check_voxel_for_boundary(). |
|
Definition at line 340 of file numerical.c. References solve_cubic(), and solve_quadratic(). Referenced by get_roots_of_polynomial(). |
|
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(). |
|
Definition at line 540 of file numerical.c. References interval_value_range(). Referenced by check_interval(). |
|
Definition at line 448 of file numerical.c. Referenced by interval_may_contain_zero(), and polynomial_may_include_range(). |
|
Definition at line 40 of file numerical.c. References SMALLEST. Referenced by create_box_filtered_volume(), gradient_steps_minimize_function(), and perform_amoeba(). |
|
Definition at line 674 of file numerical.c. References interval_value_range(). Referenced by check_range(), and get_range_of_polynomial(). |
|
Definition at line 122 of file numerical.c. |
|
Definition at line 244 of file numerical.c. References COS_60, IsZero, SIN_60, and solve_quadratic(). Referenced by get_roots_of_cubic(). |
|
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(). |