Skip to main content

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, where u === Number.EPSILON / 2 before use
  • adapted from Indrek Mandre
Note!
Green circles are draggable!
0

Parameters:

NameTypeDescription
psnumber[][]a cubic bezier curve given as an array of its control points, e.g. [[1,2],[3,4],[5,7],[0,0]]

Returns: object

NameType
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 }