16#if !defined(ON_MATH_INC_) 
   43  void operator=(
double x);
 
   49  void operator+=(
double x);
 
   55  void operator-=(
double x);
 
   70  void Begin( 
double starting_value = 0.0 );
 
   78  void Plus( 
double x );
 
   93  double Total( 
double* error_estimate = 
NULL );
 
   99  int SummandCount() 
const;
 
  118  double m_pos_sum1[sum1_max_count];
 
  119  double m_pos_sum2[sum2_max_count];
 
  120  double m_pos_sum3[sum3_max_count];
 
  125  double m_neg_sum1[sum1_max_count];
 
  126  double m_neg_sum2[sum2_max_count];
 
  127  double m_neg_sum3[sum3_max_count];
 
  129  double SortAndSum( 
int, 
double* );
 
 
  215       const double* parameters,
 
  250  virtual int EvaluateHessian(
 
  251       const double* parameters,
 
  275  bool FiniteDomain() 
const;
 
 
  345#if   defined(ON_LITTLE_ENDIAN) 
  348#define ON_IS_FINITE(x) (0x7FF0 != (*((unsigned short*)(&x) + 3) & 0x7FF0)) 
  349#define ON_IS_VALID(x)  (x != ON_UNSET_VALUE && 0x7FF0 != (*((unsigned short*)(&x) + 3) & 0x7FF0)) 
  350#define ON_IS_VALID_FLOAT(x)  (x != ON_UNSET_FLOAT) 
  353#elif defined(ON_BIG_ENDIAN) 
  356#define ON_IS_FINITE(x) (0x7FF0 != (*((unsigned short*)(&x)) & 0x7FF0)) 
  357#define ON_IS_VALID(x)  (x != ON_UNSET_VALUE && 0x7FF0 != (*((unsigned short*)(&x)) & 0x7FF0)) 
  358#define ON_IS_VALID_FLOAT(x)  (x != ON_UNSET_FLOAT) 
  374#if defined(_GNU_SOURCE) 
  375#define ON_IS_FINITE(x) (isfinite(x)?true:false) 
  379#define ON_IS_FINITE(x) (_finite(x)?true:false) 
  382#define ON_IS_VALID(x)  (x != ON_UNSET_VALUE && ON_IS_FINITE(x)) 
  383#define ON_IS_VALID_FLOAT(x)  (x != ON_UNSET_FLOAT && ON_IS_FINITE(x)) 
  604    const double* points,
 
  605    const double* boxMin,
 
  606    const double* boxMax,
 
  765       double, 
double, 
double, 
 
  880        const double row0[3], 
 
  881        const double row1[3], 
 
  882        const double row2[3],
 
  943          const double row0[4], 
 
  944          const double row1[4], 
 
  945          const double row2[4],  
 
  946          const double row3[4],
 
 1014double ON_SolveNxN(
bool bFullPivot, 
bool bNormalize, 
int n, 
double* 
M[], 
double B[], 
double X[]);
 
 1049        double* x, 
double* y
 
 1237  double cos_angle_tolerance,
 
 1238  double curvature_tolerance,
 
 1239  double zero_curvature,
 
 1240  double radius_tolerance
 
 1285  double cos_angle_tolerance=0.99984769515639123915701155881391,
 
 1319        ON::sort_algorithm method,  
 
 1323        size_t sizeof_element,
 
 1324        int (*compare)(
const void*,
const void*) 
 
 1355        ON::sort_algorithm method,  
 
 1359        size_t sizeof_element,
 
 1360        int (*compare)(
const void*,
const void*,
void*), 
 
 1385        size_t sizeof_element,
 
 1386        int (*compare)(
const void*,
const void*)
 
 1412        size_t sizeof_element,
 
 1413        int (*compare)(
void*,
const void*,
const void*),
 
 1438        size_t sizeof_element,
 
 1439        int (*compare)(
const void*,
const void*)
 
 1465        size_t sizeof_element,
 
 1466        int (*compare)(
void*,
const void*,
const void*),
 
 1509          const unsigned int* base, 
 
 1870          int* closest_point_index
 
 1988        const double* points2d, 
 
 2017        const double conic[6], 
 
 2021        double* major_radius, 
 
 2022        double* minor_radius
 
 2068      double x0, 
double y0, 
 
int i
Copyright (c) 2011-2018 by Andrew Mustun.
Definition autostart.js:32
Definition opennurbs_point.h:253
Definition opennurbs_point.h:655
Definition opennurbs_point.h:403
Definition opennurbs_point.h:931
Definition opennurbs_arc.h:34
Definition opennurbs_bounding_box.h:25
Definition opennurbs_circle.h:33
Definition opennurbs_cylinder.h:28
Definition opennurbs_math.h:139
ON_Evaluator & operator=(const ON_Evaluator &)
ON_SimpleArray< bool > m_bPeriodicParameter
Definition opennurbs_math.h:321
virtual int Evaluate(const double *parameters, double *values, double **jacobian)=0
const int m_value_count
Definition opennurbs_math.h:263
ON_SimpleArray< ON_Interval > m_domain
Definition opennurbs_math.h:314
const int m_parameter_count
Definition opennurbs_math.h:259
Definition opennurbs_point.h:46
Definition opennurbs_line.h:20
Definition opennurbs_point.h:1169
Definition opennurbs_plane.h:20
Definition opennurbs_array.h:46
Definition opennurbs_sphere.h:22
Definition opennurbs_math.h:36
int m_pos_sum2_count
Definition opennurbs_math.h:116
int m_pos_count
Definition opennurbs_math.h:112
double m_neg_sum
Definition opennurbs_math.h:109
double m_sum_err
Definition opennurbs_math.h:107
int m_pos_sum3_count
Definition opennurbs_math.h:117
int m_zero_count
Definition opennurbs_math.h:111
int m_pos_sum1_count
Definition opennurbs_math.h:115
int m_neg_sum3_count
Definition opennurbs_math.h:124
int m_neg_count
Definition opennurbs_math.h:113
int m_neg_sum2_count
Definition opennurbs_math.h:123
int m_neg_sum1_count
Definition opennurbs_math.h:122
double m_pos_sum
Definition opennurbs_math.h:108
#define ON_ZERO_TOLERANCE
Definition opennurbs_defines.h:238
#define ON_DECL
Definition opennurbs_defines.h:92
#define ON_CLASS
Definition opennurbs_defines.h:91
#define ON_SQRT_EPSILON
Definition opennurbs_defines.h:147
ON_DECL bool ON_IsCurvatureDiscontinuity(const ON_3dVector Km, const ON_3dVector Kp, double cos_angle_tolerance, double curvature_tolerance, double zero_curvature, double radius_tolerance)
Definition opennurbs_nurbscurve.cpp:1314
ON_DECL double ON_ArrayDistance(int, const double *, const double *)
Definition opennurbs_math.cpp:180
ON_DECL int ON_Compare3dex(const ON_3dex *a, const ON_3dex *b)
Definition opennurbs_math.cpp:3596
ON_DECL bool ON_TransformPointList(int, ON_BOOL32, int, int, float *, const ON_Xform &)
Definition opennurbs_math.cpp:1227
ON_DECL void ON_ArrayScale(int, float, const float *, float *)
Definition opennurbs_math.cpp:323
ON_DECL void ON_SortStringArray(ON::sort_algorithm, char **, size_t)
Definition opennurbs_math.cpp:3699
ON_DECL bool ON_EvSectionalCurvature(const ON_3dVector &S10, const ON_3dVector &S01, const ON_3dVector &S20, const ON_3dVector &S11, const ON_3dVector &S02, const ON_3dVector &planeNormal, ON_3dVector &K)
Definition opennurbs_math.cpp:685
ON_DECL ON_BOOL32 ON_TransformVectorList(int, int, int, float *, const ON_Xform &)
Definition opennurbs_math.cpp:1454
ON_DECL bool ON_GetClosestPointInPointList(int point_count, const ON_3dPoint *point_list, ON_3dPoint P, int *closest_point_index)
Definition opennurbs_pointcloud.cpp:311
ON_DECL double ON_TrinomialCoefficient(int i, int j, int k)
Definition opennurbs_math.cpp:1038
ON_DECL ON_BOOL32 ON_EvCurvature(const ON_3dVector &, const ON_3dVector &, ON_3dVector &, ON_3dVector &)
Definition opennurbs_math.cpp:642
ON_DECL bool ON_Intersect(const ON_Line &, const ON_Line &, double *, double *)
Definition opennurbs_intersect.cpp:202
ON_DECL double ON_ArrayDistanceSquared(int, const double *, const double *)
Definition opennurbs_math.cpp:223
ON_DECL ON_BOOL32 ON_IsPointListClosed(int, int, int, int, const double *)
Definition opennurbs_math.cpp:1636
ON_DECL float ON_ArrayDotProduct(int, const float *, const float *)
Definition opennurbs_math.cpp:311
ON_DECL ON_3dVector ON_NormalCurvature(const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &)
Definition opennurbs_math.cpp:4482
ON_DECL void ON_Sort(ON::sort_algorithm method, int *index, const void *base, size_t count, size_t sizeof_element, int(*compare)(const void *, const void *))
Definition opennurbs_math.cpp:2812
ON_DECL int ON_ArePointsOnLine(int, int, int, int, const double *, const ON_BoundingBox &, const ON_Line &, double)
Definition opennurbs_line.cpp:176
ON_DECL bool ON_EvaluateQuotientRule3(int dim, int der_count, int v_stride, double *v)
Definition opennurbs_math.cpp:3988
ON_DECL int ON_ComparePoint(int, ON_BOOL32, const double *, const double *)
Definition opennurbs_math.cpp:1552
ON_DECL ON_BOOL32 ON_Pullback3dVector(const ON_3dVector &, double, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, ON_2dVector &)
Definition opennurbs_math.cpp:477
ON_DECL const ON_2dex * ON_BinarySearch2dexArray(int key_i, const ON_2dex *base, size_t nel)
Definition opennurbs_array.cpp:1074
ON_DECL ON_BOOL32 ON_SwapPointGridCoordinates(int, int, int, int, double *, int, int)
Definition opennurbs_math.cpp:1201
ON_DECL ON_BOOL32 ON_SolveTriDiagonal(int, int, double *, const double *, double *, const double *, double *)
Definition opennurbs_math.cpp:1812
ON_DECL int ON_SearchMonotoneArray(const double *, int, double)
Definition opennurbs_math.cpp:859
ON_DECL void ON_SortDoubleArray(ON::sort_algorithm, double *, size_t)
Definition opennurbs_math.cpp:3609
ON_DECL void ON_SortUnsignedIntArray(ON::sort_algorithm, unsigned int *, size_t)
Definition opennurbs_math.cpp:3663
ON_DECL int ON_Solve3x3(const double row0[3], const double row1[3], const double row2[3], double d0, double d1, double d2, double *x_addr, double *y_addr, double *z_addr, double *pivot_ratio)
Definition opennurbs_math.cpp:2611
ON_DECL int ON_Compare2dex(const ON_2dex *a, const ON_2dex *b)
Definition opennurbs_math.cpp:3585
ON_DECL ON_BOOL32 ON_EvNormalPartials(const ON_3dVector &ds, const ON_3dVector &dt, const ON_3dVector &dss, const ON_3dVector &dst, const ON_3dVector &dtt, ON_3dVector &ns, ON_3dVector &nt)
Definition opennurbs_math.cpp:418
ON_DECL const int * ON_BinarySearchIntArray(int key, const int *base, size_t nel)
Definition opennurbs_math.cpp:3446
ON_DECL ON_BOOL32 ON_TransformPointGrid(int, ON_BOOL32, int, int, int, int, double *, const ON_Xform &)
Definition opennurbs_math.cpp:1429
ON_DECL bool ON_GetEllipseConicEquation(double a, double b, double x0, double y0, double alpha, double conic[6])
Definition opennurbs_point.cpp:7361
ON_DECL int ON_Solve3x2(const double[3], const double[3], double, double, double, double *, double *, double *, double *)
Definition opennurbs_math.cpp:2026
ON_DECL bool ON_IsValidFloat(float x)
Definition opennurbs_point.cpp:23
ON_DECL int ON_ComparePointList(int, ON_BOOL32, int, int, const double *, int, const double *)
Definition opennurbs_math.cpp:1586
ON_DECL ON_BOOL32 ON_EvJacobian(double, double, double, double *)
Definition opennurbs_math.cpp:363
ON_DECL const unsigned int * ON_BinarySearchUnsignedIntArray(unsigned int key, const unsigned int *base, size_t nel)
Definition opennurbs_math.cpp:3492
ON_DECL double ON_ArrayMagnitude(int, const double *)
Definition opennurbs_math.cpp:235
ON_DECL void ON_qsort(void *base, size_t count, size_t sizeof_element, int(*compare)(const void *, const void *))
Definition opennurbs_math.cpp:2785
ON_DECL double ON_BinomialCoefficient(int i, int j)
Definition opennurbs_math.cpp:937
ON_DECL int ON_Solve2x2(double, double, double, double, double, double, double *, double *, double *)
Definition opennurbs_math.cpp:1930
ON_DECL int ON_ArePointsOnPlane(int, int, int, int, const double *, const ON_BoundingBox &, const ON_Plane &, double)
Definition opennurbs_plane.cpp:577
ON_DECL ON_BOOL32 ON_EvNormal(int, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, ON_3dVector &)
Definition opennurbs_math.cpp:535
ON_DECL double ON_ArrayDotDifference(int, const double *, const double *, const double *)
Definition opennurbs_math.cpp:167
ON_DECL int ON_Solve4x4(const double row0[4], const double row1[4], const double row2[4], const double row3[4], double d0, double d1, double d2, double d3, double *x_addr, double *y_addr, double *z_addr, double *w_addr, double *pivot_ratio)
Definition opennurbs_math.cpp:2313
ON_DECL bool ON_IsConicEquationAnEllipse(const double conic[6], ON_2dPoint ¢er, ON_2dVector &major_axis, ON_2dVector &minor_axis, double *major_radius, double *minor_radius)
Definition opennurbs_point.cpp:7247
ON_DECL int ON_Round(double x)
Definition opennurbs_math.cpp:4755
ON_DECL bool ON_ReversePointList(int, ON_BOOL32, int, int, double *)
Definition opennurbs_math.cpp:1101
ON_DECL void ON_SortIntArray(ON::sort_algorithm, int *, size_t)
Definition opennurbs_math.cpp:3642
ON_DECL bool ON_EvaluateQuotientRule2(int dim, int der_count, int v_stride, double *v)
Definition opennurbs_math.cpp:3840
ON_DECL void ON_Array_aA_plus_B(int, float, const float *, const float *, float *)
Definition opennurbs_math.cpp:333
ON_DECL ON_BOOL32 ON_IsPointGridClosed(int, ON_BOOL32, int, int, int, int, const double *, int)
Definition opennurbs_math.cpp:1660
ON_DECL double ON_Max(double a, double b)
Definition opennurbs_math.cpp:4726
ON_DECL const double * ON_BinarySearchDoubleArray(double key, const double *base, size_t nel)
ON_DECL bool ON_SwapPointListCoordinates(int, int, float *, int, int)
Definition opennurbs_math.cpp:1159
ON_DECL bool ON_EvaluateQuotientRule(int dim, int der_count, int v_stride, double *v)
Definition opennurbs_math.cpp:3745
ON_DECL void ON_hsort(void *base, size_t count, size_t sizeof_element, int(*compare)(const void *, const void *))
Definition opennurbs_math.cpp:3043
ON_DECL int ON_DecomposeVector(const ON_3dVector &V, const ON_3dVector &A, const ON_3dVector &B, double *x, double *y)
Definition opennurbs_math.cpp:343
ON_DECL bool ON_GetPolylineLength(int, ON_BOOL32, int, int, const double *, double *)
Definition opennurbs_math.cpp:4533
ON_DECL double ON_ArrayMagnitudeSquared(int, const double *)
Definition opennurbs_math.cpp:278
ON_DECL ON_BOOL32 ON_IsValidPointList(int, ON_BOOL32, int, int, const float *)
Definition opennurbs_math.cpp:1049
ON_DECL double ON_TestMathFunction(int function_index, double x, double y)
Definition opennurbs_math.cpp:60
ON_DECL int ON_IsPointListPlanar(bool bRational, int count, int stride, const double *points, const double *boxMin, const double *boxMax, double tolerance, ON_PlaneEquation *plane_equation)
ON_DECL ON_BOOL32 ON_EvPrincipalCurvatures(const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, double *, double *, double *, double *, ON_3dVector &, ON_3dVector &)
Definition opennurbs_math.cpp:4120
ON_DECL ON_BOOL32 ON_IsValidPointGrid(int, ON_BOOL32, int, int, int, int, const double *)
Definition opennurbs_math.cpp:1075
ON_DECL ON_BOOL32 ON_GetParameterTolerance(double, double, double, double *, double *)
Definition opennurbs_math.cpp:507
ON_DECL ON_BOOL32 ON_ReversePointGrid(int, ON_BOOL32, int, int, int, int, double *, int)
Definition opennurbs_math.cpp:1129
ON_DECL bool ON_IsValid(double x)
Definition opennurbs_point.cpp:18
ON_DECL double ON_Min(double a, double b)
Definition opennurbs_math.cpp:4741
ON_DECL bool ON_GetConicEquationThrough6Points(int stride, const double *points2d, double conic[6], double *max_pivot, double *min_pivot, double *zero_pivot)
Definition opennurbs_point.cpp:6807
ON_DECL ON_BOOL32 ON_IsContinuous(ON::continuity c, ON_3dPoint Pa, ON_3dVector D1a, ON_3dVector D2a, ON_3dPoint Pb, ON_3dVector D1b, ON_3dVector D2b, double point_tolerance=ON_ZERO_TOLERANCE, double d1_tolerance=ON_ZERO_TOLERANCE, double d2_tolerance=ON_ZERO_TOLERANCE, double cos_angle_tolerance=0.99984769515639123915701155881391, double curvature_tolerance=ON_SQRT_EPSILON)
Definition opennurbs_math.cpp:794
ON_DECL double ON_SolveNxN(bool bFullPivot, bool bNormalize, int n, double *M[], double B[], double X[])
Definition opennurbs_math.cpp:2154
ON_DECL int ON_SolveQuadraticEquation(double, double, double, double *, double *)
Definition opennurbs_math.cpp:1695
#define M
Definition opennurbs_rand.cpp:71
#define NULL
Definition opennurbs_system.h:256
int ON_BOOL32
Definition opennurbs_system.h:362
Definition opennurbs_defines.h:249
Definition opennurbs_defines.h:261