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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
N_BezGetDegreeElevationMatrix | NL_Bezier.cpp:58 | 87 | [elevation_matrix_into], [elevation_matrix] |
N_BezFuncMultiplyBezCrvMatrix | NL_Bezier.cpp:184 | 72 | [product_matrix_into], [product_matrix] |
N_BezElevateDegree | NL_Bezier.cpp:301 | 56 | [elevate_degree] |
N_BezFuncMultiplyBezFunc | NL_Bezier.cpp:510 | 56 | [func_multiply_func] |
N_BezFuncMultiplyBezCrv | NL_Bezier.cpp:744 | 59 | [func_multiply_crv] |
N_BezSrfElevateDegree | NL_Bezier.cpp:1509 | 82 | [srf_elevate_degree] |
N_BezEvalOneBasis | NL_Bezier.cpp:1925 | 82 | [eval_one_basis] |
N_BezDegreeReduceCoefs | NL_Bezier.cpp:2476 | 20 | [degree_reduce_coefs], [ReduceCoefs] |
N_BezReduceDegree | NL_Bezier.cpp:2540 | 106 | [reduce_degree], [Reduced] |
N_BezSplit | NL_Bezier.cpp:4568 | 79 | [split] |
N_BezCalcArcLength | NL_Bezier.cpp:4676 | 8 | [calc_arc_length], [ArcLength] |
ST_BezCalcArcLength | NL_Bezier.cpp:4713 | 81 | arc_length_rec (private) |
N_BezCalcLength | NL_Bezier.cpp:4832 | 39 | [calc_length] |
N_BezFuncMultiplyBezCrv4D | NL_Bezier.cpp:5311 | 59 | [func_multiply_crv_4d] |
N_BezCrvExtend | NL_Bezier.cpp:5417 | 142 | [crv_extend], [ExtendAt] |
N_BezSrfExtend4D | NL_Bezier.cpp:5611 | 126 | [srf_extend_4d] |
Module file-header table (19 rows)
| Rust | Upstream |
|---|---|
[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