solidcore

Units / nurbs

nlib.bezier green

Layer
3
Upstream lines
1,154
Functions
16
Rust module
nurbs::bezier

Source: crates/solidcore/src/nurbs/bezier.rs

Upstream: source/SMLib/src/NL_Bezier.cpp

Notes

16 fns; difftest 2223 cases (223 fixture: SM_API_test rectangle/polygon segments, FitCrvPoints.pts, Points.pts, Surface.sms, edge cases + 2000 generated), 0 deferred, max_rel_err 0 (bit-identical; a 50,223-case run was also clean); upstream quirks in findings.md

Difftest

Cases
2,223
Passed
2,223
Deferred
0
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Nothing: no deferred cases.

Report JSON (per-case results)

Dependencies

Depends on: nlib.geom green nlib.math green nlib.srf_basic green

Soft dependencies: none

Dependents: nlib.funcs_adv green

Soft dependents: nlib.crv_geom green nlib.crv_tool_p1 green nlib.crv_tool_p2 green nlib.srf_adv_p4 green nlib.srf_tool_p2 green

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
N_BezGetDegreeElevationMatrixNL_Bezier.cpp:5887[elevation_matrix_into], [elevation_matrix]
N_BezFuncMultiplyBezCrvMatrixNL_Bezier.cpp:18472[product_matrix_into], [product_matrix]
N_BezElevateDegreeNL_Bezier.cpp:30156[elevate_degree]
N_BezFuncMultiplyBezFuncNL_Bezier.cpp:51056[func_multiply_func]
N_BezFuncMultiplyBezCrvNL_Bezier.cpp:74459[func_multiply_crv]
N_BezSrfElevateDegreeNL_Bezier.cpp:150982[srf_elevate_degree]
N_BezEvalOneBasisNL_Bezier.cpp:192582[eval_one_basis]
N_BezDegreeReduceCoefsNL_Bezier.cpp:247620[degree_reduce_coefs], [ReduceCoefs]
N_BezReduceDegreeNL_Bezier.cpp:2540106[reduce_degree], [Reduced]
N_BezSplitNL_Bezier.cpp:456879[split]
N_BezCalcArcLengthNL_Bezier.cpp:46768[calc_arc_length], [ArcLength]
ST_BezCalcArcLengthNL_Bezier.cpp:471381arc_length_rec (private)
N_BezCalcLengthNL_Bezier.cpp:483239[calc_length]
N_BezFuncMultiplyBezCrv4DNL_Bezier.cpp:531159[func_multiply_crv_4d]
N_BezCrvExtendNL_Bezier.cpp:5417142[crv_extend], [ExtendAt]
N_BezSrfExtend4DNL_Bezier.cpp:5611126[srf_extend_4d]
Module file-header table (19 rows)
RustUpstream
[elevation_matrix_into], [elevation_matrix]N_BezGetDegreeElevationMatrix
[product_matrix_into], [product_matrix]N_BezFuncMultiplyBezCrvMatrix
[elevate_degree]N_BezElevateDegree
[func_multiply_func]N_BezFuncMultiplyBezFunc
[func_multiply_crv]N_BezFuncMultiplyBezCrv
[func_multiply_crv_4d]N_BezFuncMultiplyBezCrv4D
[srf_elevate_degree]N_BezSrfElevateDegree
[eval_one_basis]N_BezEvalOneBasis
[degree_reduce_coefs], [ReduceCoefs]N_BezDegreeReduceCoefs
[reduce_degree], [Reduced]N_BezReduceDegree
[split]N_BezSplit
[calc_arc_length], [ArcLength]N_BezCalcArcLength
arc_length_rec (private)ST_BezCalcArcLength
band_matrix_into (private)the shared loops of N_BezGetDegreeElevationMatrix / N_BezFuncMultiplyBezCrvMatrix
[calc_length]N_BezCalcLength
[crv_extend], [ExtendAt]N_BezCrvExtend (NL_START / NL_END)
[srf_extend_4d]N_BezSrfExtend4D
[PASCAL_TRI], [binomial]NL_PascalTri
[RECURSE_LIMIT]NL_RECURSELIM

Upstream tests reaching this unit

prog_test:my_test_surface_closest_point, prog_test:my_test_drop_point, prog_test:my_test_matrix, prog_test:my_test_reversed_line_join, SM_API_test:TestSmCreateRectangle, SM_API_test:TestSmCreateRegularPolygon