Liking cljdoc? Tell your friends :D
Mostly clj/s.
Exceptions indicated.

sicmutils.env

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.
raw docstring

*clj/s≠

clj
(* & args)
cljs

+clj/s≠

clj
(+ & args)
cljs

-clj/s≠

clj
(- & args)
cljs

->H-stateclj/s≠

clj
(->H-state t q p)
cljs

->infixclj/s≠

clj

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.
raw docstring

->JavaScriptclj/s≠

clj

Convert the given (simplified) expression to a JavaScript function. Parameters to the function will be extracted from the symbols in the expression. Common subexpression elimination will be performed and auxiliary variables will be bound in the body of the function; the names of these symbols are obtained from the nullary function option :symbol-generator, which defaults to a function yielding _1, .... If :parameter-order is specified, it is used to determine function parameter order in one of two ways: if it is set to a function, that function will be called on the sequence of parameters and is expected to return the parameters in the desired sequence. Otherwise, it is interpreted as the sequence of parameters itself. If not specified, the default behavior issort`.

If :deterministic? true is supplied, the function will assign variables by sorting the string representations of each term before assignment. Otherwise, the nondeterministic order of hash maps inside this function won't guarantee a consistent variable naming convention in the returned function. For tests, set :deterministic? true.

Convert the given (simplified) expression to a JavaScript function.
Parameters to the function will be extracted from the symbols in the
expression. Common subexpression elimination will be performed and auxiliary
variables will be bound in the body of the function; the names of these
symbols are obtained from the nullary function option :symbol-generator, which
defaults to a function yielding `_1, ...`. If `:parameter-order is specified,
it is used to determine function parameter order in one of two ways: if it is
set to a function, that function will be called on the sequence of parameters
and is expected to return the parameters in the desired sequence. Otherwise,
it is interpreted as the sequence of parameters itself. If not specified, the
default behavior is `sort`.

If `:deterministic? true` is supplied, the function will assign variables by
sorting the string representations of each term before assignment. Otherwise,
the nondeterministic order of hash maps inside this function won't guarantee a
consistent variable naming convention in the returned function. For tests, set
`:deterministic? true`.
raw docstring

->L-stateclj/s≠

clj
(->L-state t q v & as)

Constructs a Lagrangian state, also knows as a local tuple

Constructs a Lagrangian state, also knows as a local tuple
cljs
raw docstring

->localclj/s


->TeXclj/s≠

clj

Convert the given (simplified) expression to TeX format, as a string.

Convert the given (simplified) expression to TeX format, as a string.
raw docstring

/clj/s≠

clj
(/ & args)
cljs

absclj/s≠multimethod

clj

generic abs

generic abs
raw docstring

acosclj/s≠multimethod

clj

generic acos

generic acos
raw docstring

alternate-anglesclj/s


angleclj/s≠

clj
(angle a)
cljs

asinclj/s≠multimethod

clj

generic asin

generic asin
raw docstring

atanclj/s≠multimethod

clj

generic atan

generic atan
raw docstring

basis->basis-over-mapclj/s≠

clj
(basis->basis-over-map mu:N->M basis-on-M)
cljs

basis->oneform-basisclj/s≠

clj
(basis->oneform-basis b)

Extract the dual basis from the given basis object.

Extract the dual basis from the given basis object.
cljs
raw docstring

basis->vector-basisclj/s≠

clj
(basis->vector-basis b)

Extract the vector basis from the given basis object.

Extract the vector basis from the given basis object.
cljs
raw docstring

bootstrap-repl!cljmacro

(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.)
raw docstring

Cartan-transformclj/s≠

clj
(Cartan-transform cartan basis-prime)
cljs

chartclj/s≠

clj
(chart coordinate-system)
cljs

Christoffel->Cartanclj/s≠

clj
(Christoffel->Cartan Christoffel)
cljs

column-matrixclj/s


commutatorclj/s≠

clj
(commutator o p)
cljs

compatible-shapeclj/s≠

clj
(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.
cljs
raw docstring

complexclj/s≠

clj
(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.
cljs
raw docstring

componentclj/s≠

clj
(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.
cljs
raw docstring

components->oneform-fieldclj/s≠

clj
(components->oneform-field components coordinate-system & [name])
cljs

components->vector-fieldclj/s≠

clj
(components->vector-field components coordinate-system & [name])
cljs

composeclj/s≠

clj
(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.
cljs
raw docstring

compositional-canonical?clj/s≠

clj
(compositional-canonical? C H)

p.324

p.324
cljs
raw docstring

conjugateclj/s≠

clj
(conjugate a)
cljs

coordinateclj/s≠

clj
(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
cljs
raw docstring

coordinate-system->basisclj/s≠

clj
(coordinate-system->basis coordinate-system)

Return the standard basis object for the coordinate system.

Return the standard basis object for the coordinate system.
cljs
raw docstring

coordinate-system->oneform-basisclj/s≠

clj
(coordinate-system->oneform-basis coordinate-system)
cljs

coordinate-system->vector-basisclj/s≠

clj
(coordinate-system->vector-basis coordinate-system)
cljs

coordinate-tupleclj/s≠

clj
(coordinate-tuple & xs)
cljs

coordinatizeclj/s≠

clj
(coordinatize v coordinate-system)
cljs

cosclj/s≠multimethod

clj

generic cos

generic cos
raw docstring

cotclj/s


covariant-derivativeclj/s≠

clj
(covariant-derivative Cartan)
(covariant-derivative Cartan map)
cljs

cross-productclj/s≠multimethod

clj

generic cross-product

generic cross-product
raw docstring

cscclj/s


cubeclj/s≠multimethod

clj

generic cube

generic cube
raw docstring

dclj/s


Dclj/s≠

clj

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.
raw docstring

definite-integralclj/s≠

clj
(definite-integral f
                   a
                   b
                   &
                   {:keys [compile method max-evaluations relative-accuracy
                           absolute-accuracy min-iterations max-iterations
                           points]
                    :or {compile false
                         method :romberg
                         max-evaluations 32768
                         relative-accuracy 1.0E-6
                         absolute-accuracy 1.0E-15
                         min-iterations 3
                         max-iterations 32
                         points 16}})
cljs

determinantclj/s≠multimethod

clj

generic determinant

generic determinant
raw docstring

differentialclj/s≠

clj
(differential mu:N->M)

FDG p.72

FDG p.72
cljs
raw docstring

downclj/s≠

clj
(down & xs)

Construct a down (covariant) tuple from the arguments.

Construct a down (covariant) tuple from the arguments.
cljs
raw docstring

elliptic-fclj/s≠

clj
(elliptic-f phi k)
cljs

Euler-anglesclj/s


Euler-Lagrange-operatorclj/s≠

clj
(Euler-Lagrange-operator L)
cljs

evolutionclj/s≠

clj
(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.
cljs
raw docstring

evolveclj/s≠

clj
(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.
cljs
raw docstring

expclj/s≠multimethod

clj

generic exp

generic exp
raw docstring

exptclj/s≠multimethod

clj

generic expt

generic expt
raw docstring

F->Cclj/s≠

clj
(F->C F)
cljs

F->CTclj/s≠

clj
(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)
cljs
raw docstring

find-pathclj/s≠

clj
(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.
cljs
raw docstring

form-field->form-field-over-mapclj/s≠

clj
(form-field->form-field-over-map mu:N->M)
cljs

Gammaclj/s≠

clj
(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).
cljs
raw docstring

Gamma-barclj/s≠

clj
(Gamma-bar f)
cljs

Hamilton-equationsclj/s≠

clj
(Hamilton-equations Hamiltonian)
cljs

Hamiltonianclj/s≠

clj
(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.
cljs
raw docstring

Hamiltonian->state-derivativeclj/s≠

clj
(Hamiltonian->state-derivative Hamiltonian)
cljs

imag-partclj/s≠

clj
(imag-part a)
cljs

integrate-state-derivativeclj/s≠

clj
(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
cljs
raw docstring

interior-productclj/s≠

clj
(interior-product V)
cljs

invertclj/s≠multimethod

clj

generic invert

generic invert
raw docstring

iterated-mapclj/s≠

clj
(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.
cljs
raw docstring

Jacobianclj/s≠

clj
(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.
cljs
raw docstring

Lagrange-equationsclj/s≠

clj
(Lagrange-equations Lagrangian)
cljs

Lagrange-equations-first-orderclj/s≠

clj
(Lagrange-equations-first-order L)
cljs

Lagrange-interpolation-functionclj/s≠

clj
(Lagrange-interpolation-function ys xs)
cljs

Lagrangian->energyclj/s≠

clj
(Lagrangian->energy L)
cljs

Lagrangian->Hamiltonianclj/s


Lagrangian->state-derivativeclj/s≠

clj
(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.
cljs
raw docstring

Lagrangian-actionclj/s≠

clj
(Lagrangian-action L q t1 t2)
cljs

Legendre-transformclj/s


let-coordinatescljmacro

(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...)
raw docstring

Lie-derivativeclj/s≠multimethod

clj

generic Lie-derivative

generic Lie-derivative
raw docstring

Lie-transformclj/s≠

clj
(Lie-transform H t)

p. 428

p. 428
cljs
raw docstring

linear-interpolantsclj/s≠

clj
(linear-interpolants x0 x1 n)
cljs

literal-functioncljmacro

(literal-function f)
(literal-function f sicm-signature)
(literal-function f domain range)

literal-manifold-functionclj/s≠

clj
(literal-manifold-function name coordinate-system)
cljs

literal-manifold-mapclj/s≠

clj
(literal-manifold-map name source target)
cljs

literal-oneform-fieldclj/s≠

clj
(literal-oneform-field name coordinate-system)
cljs

literal-vector-fieldclj/s≠

clj
(literal-vector-field name coordinate-system)
cljs

logclj/s≠multimethod

clj

generic log

generic log
raw docstring

m->sclj/s≠

clj
(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
cljs
raw docstring

m:dimensionclj/s


m:transposeclj/s


magnitudeclj/s≠multimethod

clj

generic magnitude

generic magnitude
raw docstring

make-Christoffelclj/s≠

clj
(make-Christoffel symbols basis)
cljs

maprclj/s≠

clj
(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.
cljs
raw docstring

matrix-by-rowsclj/s


minimizeclj/s≠

clj
(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.
cljs
raw docstring

momentumclj/s≠

clj
(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).
cljs
raw docstring

momentum-tupleclj/s≠

clj
(momentum-tuple & ps)
cljs

negateclj/s≠multimethod

clj

generic negate

generic negate
raw docstring

orientationclj/s≠

clj
(orientation s)

Return the orientation of s, either ::up or ::down.

Return the orientation of s, either ::up or ::down.
cljs
raw docstring

osculating-pathclj/s≠

clj
(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.
cljs
raw docstring

p->rclj/s≠

clj
(p->r [_ [r φ]])

SICM p. 47. Polar to rectangular coordinates of state.

SICM p. 47. Polar to rectangular coordinates of state.
cljs
raw docstring

partialclj/s

(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.
raw docstring

piclj/s


pointclj/s≠

clj
(point coordinate-system)
cljs

Poisson-bracketclj/s≠

clj
(Poisson-bracket f g)
cljs

polar-canonicalclj/s≠

clj
(polar-canonical alpha)

p.327

p.327
cljs
raw docstring

principal-valueclj/s



pullbackclj/s≠

clj
(pullback mu:N->M)
(pullback mu:N->M mu-inverse:M->N)
cljs

pushforward-vectorclj/s≠

clj
(pushforward-vector mu:N->M mu-inverse:M->N)
cljs

qp-submatrixclj/s


R1-rectclj/s


R2-polarclj/s


R2-rectclj/s


R3-cylclj/s


R3-rectclj/s


real-partclj/s≠

clj
(real-part a)
cljs

refclj/s

(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.
raw docstring

Rxclj/s≠

clj
(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.
cljs
raw docstring

Ryclj/s≠

clj
(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.
cljs
raw docstring

Rzclj/s≠

clj
(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.
cljs
raw docstring

s->mclj/s≠

clj
(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.
cljs
raw docstring

s->rclj/s≠

clj
(s->r [_ [r θ φ] _])

SICM p. 83

SICM p. 83
cljs
raw docstring

S2-Riemannclj/s


S2-sphericalclj/s


S2-stereographicclj/s


secclj/s


seriesclj/s


series:sumclj/s


sicmutils-repl-initclj

(sicmutils-repl-init)

simplifyclj/smultimethod


sinclj/s≠multimethod

clj

generic sin

generic sin
raw docstring

SO3clj/s


sqrtclj/s≠multimethod

clj

generic sqrt

generic sqrt
raw docstring

squareclj/s≠multimethod

clj

generic square

generic square
raw docstring

standard-mapclj/s≠

clj
(standard-map K)
cljs

state->tclj/s≠

clj
(state->t s)

Extract the time slot from a state tuple

Extract the time slot from a state tuple
cljs
raw docstring

state-advancerclj/s≠

clj
(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 the initial state, target time, and error tolerance as arguments. The final state is returned. 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
the initial state, target time, and error tolerance as
arguments. The final state is returned. 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.
cljs
raw docstring

structure->vectorclj/s≠

clj
(structure->vector s)

Return the structure in unoriented vector form.

Return the structure in unoriented vector form.
cljs
raw docstring

structure?clj/s≠

clj
(structure? s)

True if s is a structure.

True if s is a structure.
cljs
raw docstring

symplectic-transform?clj/s≠

clj
(symplectic-transform? C)

p. 334

p. 334
cljs
raw docstring

symplectic-unitclj/s≠

clj
(symplectic-unit n)

p. 334 (used, but not defined there)

p. 334 (used, but not defined there)
cljs
raw docstring

tanclj/s≠multimethod

clj

generic tan

generic tan
raw docstring

tex$clj/s

(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.
raw docstring

tex$$clj/s

(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.
raw docstring

time-independent-canonical?clj/s≠

clj
(time-independent-canonical? C)

p.326

p.326
cljs
raw docstring

transposeclj/s≠multimethod

clj

generic transpose

generic transpose
raw docstring

upclj/s≠

clj
(up & xs)

Construct an up (contravariant) tuple from the arguments.

Construct an up (contravariant) tuple from the arguments.
cljs
raw docstring

up?clj/s≠

clj
(up? s)

True if s in an up structure.

True if s in an up structure.
cljs
raw docstring

using-coordinatescljmacro

(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.
raw docstring

vector->downclj/s≠

clj
(vector->down v)

Form a down-tuple from a vector.

Form a down-tuple from a vector.
cljs
raw docstring

vector->upclj/s≠

clj
(vector->up v)

Form an up-tuple from a vector.

Form an up-tuple from a vector.
cljs
raw docstring

vector-basis->dualclj/s≠

clj
(vector-basis->dual vector-basis coordinate-system)
cljs

vector-field->componentsclj/s≠

clj
(vector-field->components vf coordinate-system)
cljs

vector-field->vector-field-over-mapclj/s≠

clj
(vector-field->vector-field-over-map mu:N->M)

FDG p.72

FDG p.72
cljs
raw docstring

velocityclj/s≠

clj
(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).
cljs
raw docstring

velocity-tupleclj/s


wedgeclj/s≠

clj
(wedge & fs)
cljs

with-literal-functionscljmacro

(with-literal-functions & args)

zero?clj/s


Γclj/s

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close