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