The purpose of these definitions is to let the import of sicmutils.env bring all the functions in the book into scope without qualification, so you can just start working with examples.
The purpose of these definitions is to let the import of sicmutils.env bring all the functions in the book into scope without qualification, so you can just start working with examples.
Converts an S-expression to printable infix form. Numeric exponents are written as superscripts. Partial derivatives get subscripts.
Converts an S-expression to printable infix form. Numeric exponents are written as superscripts. Partial derivatives get subscripts.
(basis->basis-over-map mu:N->M basis-on-M)
(basis->oneform-basis b)
Extract the dual basis from the given basis object.
Extract the dual basis from the given basis object.
(basis->vector-basis b)
Extract the vector basis from the given basis object.
Extract the vector basis from the given basis object.
(bootstrap-repl!)
Bootstraps a repl or Clojure namespace by requiring all public vars from sicmutils.env. From (This will only work at a repl in Clojurescript.)
Bootstraps a repl or Clojure namespace by requiring all public vars from sicmutils.env. From (This will only work at a repl in Clojurescript.)
(compatible-shape s)
Return an object compatible for multiplication with the given one, with the slots filled with gensyms.
Return an object compatible for multiplication with the given one, with the slots filled with gensyms.
(complex re)
(complex re im)
Construct a complex number from real, or real and imaginary, components.
Construct a complex number from real, or real and imaginary, components.
(component & indices)
Given an access chain (a sequence of indices), return a function of structures that will retrieve that corresponding element.
Given an access chain (a sequence of indices), return a function of structures that will retrieve that corresponding element.
(components->oneform-field components coordinate-system & [name])
(components->vector-field components coordinate-system & [name])
(compose & fns)
Compose is like Clojure's standard comp, but for this system we like to know the arity of our functions, so that we can calculate their derivatives with structure, etc. The arity of a composition is simply the arity of its rightmost (that is, first to be applied) function term.
Compose is like Clojure's standard comp, but for this system we like to know the arity of our functions, so that we can calculate their derivatives with structure, etc. The arity of a composition is simply the arity of its rightmost (that is, first to be applied) function term.
(compositional-canonical? C H)
p.324
p.324
(coordinate local)
A convenience function on local tuples. A local tuple describes the state of a system at a particular time: [t, q, D q, D^2 q] representing time, position, velocity (and optionally acceleration etc.) Returns the q element, which is expected to be a mapping from time to a structure of coordinates
A convenience function on local tuples. A local tuple describes the state of a system at a particular time: [t, q, D q, D^2 q] representing time, position, velocity (and optionally acceleration etc.) Returns the q element, which is expected to be a mapping from time to a structure of coordinates
(coordinate-system->basis coordinate-system)
Return the standard basis object for the coordinate system.
Return the standard basis object for the coordinate system.
(coordinate-system->oneform-basis coordinate-system)
(coordinate-system->vector-basis coordinate-system)
(covariant-derivative Cartan)
(covariant-derivative Cartan map)
generic cross-product
generic cross-product
Derivative operator. Produces a function whose value at some point can multiply an increment in the arguments, to produce the best linear estimate of the increment in the function value.
Derivative operator. Produces a function whose value at some point can multiply an increment in the arguments, to produce the best linear estimate of the increment in the function value.
(definite-integral f a b)
(definite-integral f
a
b
{:keys [method compile? info?]
:or {method :open compile? false info? false}
:as opts})
Evaluates the definite integral of integrand f
across the interval $a, b$.
Optionally accepts a dictionary opts
of customizing options; All opts
will
be passed through to the supplied integrate
functions.
If you'd like more control, or to retrieve the integration function directly
without looking it up via :method
each time, see get-integrator
.
All supplied options are passed through to the underlying integrator; see the specific integrator for information on what options are available.
:method
: Specifies the integration method used. Must be
available-methods
:method
keyDefaults to :open
, which specifies an adaptive bulirsch-stoer quadrature method.
:compile?
If true, the generic function will be simplified and compiled
before execution. (Clojure only for now.) Defaults to false.
:info?
If true, definite-integral
will return a map of integration
information returned by the underlying integrator. Else, returns an estimate
of the definite integral.
Evaluates the definite integral of integrand `f` across the interval $a, b$. Optionally accepts a dictionary `opts` of customizing options; All `opts` will be passed through to the supplied `integrate` functions. If you'd like more control, or to retrieve the integration function directly without looking it up via `:method` each time, see `get-integrator`. All supplied options are passed through to the underlying integrator; see the specific integrator for information on what options are available. ## Keyword arguments: `:method`: Specifies the integration method used. Must be - a keyword naming one of the available methods in `available-methods` - a function with the proper integrator signature - a dictionary of integrator options with a `:method` key Defaults to `:open`, which specifies an adaptive bulirsch-stoer quadrature method. `:compile?` If true, the generic function will be simplified and compiled before execution. (Clojure only for now.) Defaults to false. `:info?` If true, `definite-integral` will return a map of integration information returned by the underlying integrator. Else, returns an estimate of the definite integral.
generic determinant
generic determinant
(differential mu:N->M)
FDG p.72
FDG p.72
(down & xs)
Construct a down (covariant) tuple from the arguments.
Construct a down (covariant) tuple from the arguments.
(evolution order)
We can use the coordinatized vector field to build an evolution along an integral curve.
We can use the coordinatized vector field to build an evolution along an integral curve.
(evolve state-derivative & state-derivative-args)
evolve takes a state derivative function constructor and its arguments, and returns an integrator via make-integrator.
In particular, the returned function accepts a callback function which will be invoked at intermediate grid points of the integration.
evolve takes a state derivative function constructor and its arguments, and returns an integrator via make-integrator. In particular, the returned function accepts a callback function which will be invoked at intermediate grid points of the integration.
(F->CT F)
A transformation of configuration coordinates F to a procedure implementing a transformation of phase-space coordinates (p. 320)
A transformation of configuration coordinates F to a procedure implementing a transformation of phase-space coordinates (p. 320)
(find-path Lagrangian t0 q0 t1 q1 n & {:keys [observe]})
SICM p. 23. The optional parameter values is a callback which will report intermediate points of the minimization.
SICM p. 23. The optional parameter values is a callback which will report intermediate points of the minimization.
(form-field->form-field-over-map mu:N->M)
(Gamma q)
(Gamma q n)
Gamma takes a path function (from time to coordinates) to a state function (from time to local tuple).
Gamma takes a path function (from time to coordinates) to a state function (from time to local tuple).
(Hamiltonian & n)
Return SICM-style function signature for a Hamiltonian with n degrees of freedom (or 1 if n is not given). Useful for constructing Hamiltonian literal functions.
Return SICM-style function signature for a Hamiltonian with n degrees of freedom (or 1 if n is not given). Useful for constructing Hamiltonian literal functions.
(Hamiltonian->state-derivative Hamiltonian)
(integrate-state-derivative state-derivative
state-derivative-args
initial-state
t1
dt)
A wrapper for evolve, which is more convenient when you just want a vector of (time, state) pairs over the integration interval instead of having to deal with a callback. Integrates the supplied state derivative (and its argument package) from [0 to t1] in steps of size dt
A wrapper for evolve, which is more convenient when you just want a vector of (time, state) pairs over the integration interval instead of having to deal with a callback. Integrates the supplied state derivative (and its argument package) from [0 to t1] in steps of size dt
(iterated-map f n)
f is a function of (x y continue fail), which calls continue with the values of x' y' that follow x y in the mapping. Returns a map of the same shape that iterates the iterated map n times before invoking the continuation, or invokes the fail continuation if the inner map fails.
f is a function of (x y continue fail), which calls continue with the values of x' y' that follow x y in the mapping. Returns a map of the same shape that iterates the iterated map n times before invoking the continuation, or invokes the fail continuation if the inner map fails.
(Jacobian to-basis from-basis)
Compute the Jacobian of transition from from-basis to to-basis.
Compute the Jacobian of transition from from-basis to to-basis.
(Lagrange-equations-first-order L)
(Lagrange-interpolation-function ys xs)
(Lagrangian->state-derivative L)
The state derivative of a Lagrangian is a function carrying a state tuple to its time derivative.
The state derivative of a Lagrangian is a function carrying a state tuple to its time derivative.
(let-coordinates bindings & body)
Example: (let-coordinates [[x y] R2-rect [r theta] R2-polar] body...)
Example: (let-coordinates [[x y] R2-rect [r theta] R2-polar] body...)
generic Lie-derivative
generic Lie-derivative
(literal-function f)
(literal-function f sicm-signature)
(literal-function f domain range)
(literal-manifold-function name coordinate-system)
(literal-oneform-field name coordinate-system)
(literal-vector-field name coordinate-system)
(m->s ls m rs)
Convert the matrix m into a structure S, guided by the requirement that (* ls S rs) should be a scalar
Convert the matrix m into a structure S, guided by the requirement that (* ls S rs) should be a scalar
generic magnitude
generic magnitude
(mapr f & structures)
Return a structure with the same shape as s but with f applied to each primitive (that is, not structural) component.
Return a structure with the same shape as s but with f applied to each primitive (that is, not structural) component.
(minimize f a b)
(minimize f a b observe)
Find the minimum of the function f: R -> R in the interval [a,b]. If observe is supplied, will be invoked with the iteration count and the values of x and f(x) at each search step.
Find the minimum of the function f: R -> R in the interval [a,b]. If observe is supplied, will be invoked with the iteration count and the values of x and f(x) at each search step.
(momentum H-state)
See coordinate: this returns the momentum element of a Hammilton state tuple (by convention, the element at index 2).
See coordinate: this returns the momentum element of a Hammilton state tuple (by convention, the element at index 2).
(orientation s)
Return the orientation of s, either ::up or ::down.
Return the orientation of s, either ::up or ::down.
(osculating-path state0)
Given a state tuple (of finite length), reconstitutes the initial segment of the Taylor series corresponding to the state tuple data as a function of t. Time is measured beginning at the point of time specified in the input state tuple.
Given a state tuple (of finite length), reconstitutes the initial segment of the Taylor series corresponding to the state tuple data as a function of t. Time is measured beginning at the point of time specified in the input state tuple.
(p->r [_ [r φ]])
SICM p. 47. Polar to rectangular coordinates of state.
SICM p. 47. Polar to rectangular coordinates of state.
(partial & selectors)
A shim. Dispatches to partial differentiation when all the arguments are integers; falls back to the core meaning (partial function application) otherwise.
A shim. Dispatches to partial differentiation when all the arguments are integers; falls back to the core meaning (partial function application) otherwise.
(polar-canonical alpha)
p.327
p.327
(pushforward-vector mu:N->M mu-inverse:M->N)
(ref a & as)
A shim so that ref can act like nth in SICM contexts, as clojure core ref elsewhere.
A shim so that ref can act like nth in SICM contexts, as clojure core ref elsewhere.
(Rx α)
Returns a function which rotates a vector α radians about the x axis.
Returns a function which rotates a vector α radians about the x axis.
(Ry α)
Returns a function which rotates a vector α radians about the y axis.
Returns a function which rotates a vector α radians about the y axis.
(Rz α)
Returns a function which rotates a vector α radians about the z axis.
Returns a function which rotates a vector α radians about the z axis.
(s->m ls ms rs)
Convert the structure ms, which would be a scalar if the (compatible) multiplication (* ls ms rs) were performed, to a matrix.
Convert the structure ms, which would be a scalar if the (compatible) multiplication (* ls ms rs) were performed, to a matrix.
(state->t s)
Extract the time slot from a state tuple
Extract the time slot from a state tuple
(state-advancer state-derivative & state-derivative-args)
state-advancer takes a state derivative function constructor followed by the arguments to construct it with. The state derivative function is constructed and an integrator is produced which takes:
as arguments. Optionally, supply an options map with these optional fields:
:compile?
: If true, the ODE solver will compile your state function.
:epsilon
: The maximum error tolerance allowed by the ODE solver, both
relative and absolute.
Returns the final state.
The state derivative is expected to map a structure to a structure of the same shape, and is required to have the time parameter as the first element.
state-advancer takes a state derivative function constructor followed by the arguments to construct it with. The state derivative function is constructed and an integrator is produced which takes: - initial state - target time as arguments. Optionally, supply an options map with these optional fields: `:compile?`: If true, the ODE solver will compile your state function. `:epsilon`: The maximum error tolerance allowed by the ODE solver, both relative and absolute. Returns the final state. The state derivative is expected to map a structure to a structure of the same shape, and is required to have the time parameter as the first element.
(structure->vector s)
Return the structure in unoriented vector form.
Return the structure in unoriented vector form.
(structure? s)
True if s is a structure.
True if s is a structure.
(symplectic-transform? C)
p. 334
p. 334
(symplectic-unit n)
p. 334 (used, but not defined there)
p. 334 (used, but not defined there)
(tex$ expr)
Render expression in a form convenient for rendering with clojupyter. In this case, we want the TeX material wrapped with dollar signs.
Render expression in a form convenient for rendering with clojupyter. In this case, we want the TeX material wrapped with dollar signs.
(tex$$ expr)
Render expression in a form convenient for rendering with clojupyter. In this case, we want the TeX material wrapped with dollar signs.
Render expression in a form convenient for rendering with clojupyter. In this case, we want the TeX material wrapped with dollar signs.
(time-independent-canonical? C)
p.326
p.326
generic transpose
generic transpose
(up & xs)
Construct an up (contravariant) tuple from the arguments.
Construct an up (contravariant) tuple from the arguments.
(up? s)
True if s in an up structure.
True if s in an up structure.
(using-coordinates coordinate-prototype coordinate-system & body)
Example: (using-coordinates (up x y) R2-rect body...)
Note: this is just a macro wrapping let-coordinates, the use of which is preferred.
Example: (using-coordinates (up x y) R2-rect body...) Note: this is just a macro wrapping let-coordinates, the use of which is preferred.
(vector->down v)
Form a down-tuple from a vector.
Form a down-tuple from a vector.
(vector->up v)
Form an up-tuple from a vector.
Form an up-tuple from a vector.
(vector-basis->dual vector-basis coordinate-system)
(vector-field->components vf coordinate-system)
(vector-field->vector-field-over-map mu:N->M)
FDG p.72
FDG p.72
(velocity local)
See coordinate: this returns the velocity element of a local tuple (by convention, the 2nd element).
See coordinate: this returns the velocity element of a local tuple (by convention, the 2nd element).
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close