Auxiliary Functions

Rigidity Checks

Predictor-Corrector Methods

Main.DeformationPaths.euler_stepMethod
euler_step(G, step_size, prev_flex, point, K_n)

Euler step predicting the next point along the approximate motion.

Returns

  • predicted_point::Vector{<:Real}: The next point predicted by Euler's method.
  • predicted_inf_flex::Vector{<:Real}: The tangent vector predicted by Euler's method.
source
Main.DeformationPaths.newton_correctMethod
newton_correct(G, point)

Apply Newton's method to correct point back to the constraints in G.

Arguments

  • G::ConstraintSystem: The underlying geometric constraint system.
  • point::Vector{<:Real}: The initial point that Newton's method is applied to.

For further keywords, see newton_correct.

Returns

  • q::Vector{<:Real}: A point q such that the Euclidean norm of the evaluated equations is at most tol
source
Main.DeformationPaths.newton_correctMethod
newton_correct(equations, variables, jac, point[; tol, time_penalty])

Apply Newton's method to correct point back to the constraints in equations.

Arguments

  • equations::Vector{Expression}: Equations to correct point to.
  • variables::Vector{Variable}: Variables from the affine coordinate ring.
  • jac::Matrix{Expression}: Jacobian matrix corresponding to equations and variables.
  • point::Vector{<:Real}: The initial point that Newton's method is applied to.
  • tol::Real (optional): Numerical tolerance that is used as a stopping criterion for Newton's method. Default value: 1e-13.
  • time_penalty::Union{Real,Nothing} (optional): If Newton's method takes too long, we stop the iteration and throw an error. Here, "too long" is measured in terms of length(point)/time_penalty seconds. Default value: 2.
  • armijo_linesearch::Bool (optional): Flag for activating the Armijo backtracking line search procedure. Default value: true.

Returns

  • q::Vector{<:Real}: A point q such that the Euclidean norm of the evaluated equations is at most tol
source
Main.DeformationPaths.symmetric_newton_correctMethod
symmetric_newton_correct(G, point[; tol, time_penalty])

Apply symmetric Newton's method to correct point back to the constraints in equations.

The symmetric Newton corrector evaluates the Jacobian matrix less often.

Arguments

  • G::ConstraintSystem: The underlying geometric constraint system.
  • point::Vector{<:Real}: The initial point that Newton's method is applied to.
  • tol::Real (optional): Numerical tolerance that is used as a stopping criterion for Newton's method. Default value: 1e-13.
  • time_penalty::Union{Real,Nothing} (optional): If Newton's method takes too long, we stop the iteration and throw an error. Here, "too long" is measured in terms of length(point)/time_penalty seconds. Default value: 2.

Returns

  • q::Vector{<:Real}: A point q such that the Euclidean norm of the evaluated equations is at most tol

See also symmetric_newton_correct

source
Main.DeformationPaths.symmetric_newton_correctMethod
symmetric_newton_correct(equations, variables, jac, point[; tol, time_penalty])

Apply symmetric Newton's method to correct point back to the constraints in equations.

The symmetric Newton corrector evaluates the Jacobian matrix less often.

Arguments

  • equations::Vector{Expression}: Equations to correct point to.
  • variables::Vector{Variable}: Variables from the affine coordinate ring.
  • jac::Matrix{Expression}: Jacobian matrix corresponding to equations and variables.
  • point::Vector{<:Real}: The initial point that Newton's method is applied to.
  • tol::Real (optional): Numerical tolerance that is used as a stopping criterion for Newton's method. Default value: 1e-13.
  • time_penalty::Union{Real,Nothing} (optional): If Newton's method takes too long, we stop the iteration and throw an error. Here, "too long" is measured in terms of length(point)/time_penalty seconds. Default value: 2.

Returns

  • q::Vector{<:Real}: A point q such that the Euclidean norm of the evaluated equations is at most tol
source

Infinitessimal Flexes

Transformation Methods

Special Polytope Methods