get-implicit-form3-dd-with-running-error
function getImplicitForm3DdWithRunningError(ps: number[][]): object
Defined in implicit-form/double-double/get-implicit-form3-dd-with-running-error.ts:39
Returns a double-double precision implicit form of the given cubic
bezier curve curve and a coefficientwise error bound.
Returned coefficients are subscripted to match their monomial's variables,
e.g. vₓᵧ
is the coefficient of the monomial vₓᵧxy
- the implicit form is given by:
vₓₓₓx³ + vₓₓᵧx²y + vₓᵧᵧxy² + vᵧᵧᵧy³ + vₓₓx² +vₓᵧxy + vᵧᵧy² + vₓx + vᵧy + v = 0
- intermediate calculations are done in double-double precision and this is reflected in the error bound
- the error bound returned first needs to be scaled by
γγ3 === (3*u*u) / (1 - 3*u*u) === 3.697785493223493e-32
, whereu === Number.EPSILON / 2
before use - adapted from Indrek Mandre
Note!
Green circles are draggable!
Parameters:
Name | Type | Description |
---|---|---|
ps | number[][] | a cubic bezier curve given as an array of its control points, e.g. [[1,2],[3,4],[5,7],[0,0]] |
Returns: object
Name | Type |
---|---|
coeffs | { vₓₓₓ : number[]; vₓₓᵧ : number[]; vₓᵧᵧ : number[]; vᵧᵧᵧ : number[]; vₓₓ : number[]; vₓᵧ : number[]; vᵧᵧ : number[]; vₓ : number[]; vᵧ : number[]; v : number[] } |
errorBound | { vₓₓₓ_ : number; vₓₓᵧ_ : number; vₓᵧᵧ_ : number; vᵧᵧᵧ_ : number; vₓₓ_ : number; vₓᵧ_ : number; vᵧᵧ_ : number; vₓ_ : number; vᵧ_ : number; v_ : number } |