Liking cljdoc? Tell your friends :D

sicmutils.abstract.function

Implementation of a literal-function constructor. Literal functions can be applied to structures and numeric inputs, and differentiated.

The namespace also contains an implementation of a small language for declaring the input and output types of literal-function instances.

Implementation of a [[literal-function]] constructor. Literal functions can be
applied to structures and numeric inputs, and differentiated.

The namespace also contains an implementation of a small language for
declaring the input and output types of [[literal-function]] instances.
raw docstring

sicmutils.abstract.number

Symbolic expressions in SICMUtils are created through the literal-number constructor, or implicitly by performing arithmetic between symbols and numbers.

This namespace implements the literal-number constructor and installs the underlying type into the generic arithmetic system.

Symbolic expressions in SICMUtils are created through the [[literal-number]]
constructor, or implicitly by performing arithmetic between symbols and
numbers.

This namespace implements the [[literal-number]] constructor and installs the
underlying type into the generic arithmetic system.
raw docstring

sicmutils.algebra.fold

Namespace implementing various aggregation functions using the fold abstraction and combinators for generating new folds from fold primitives.

Contains a number of algorithms for compensated summation of floating-point numbers.

Namespace implementing various aggregation functions using the `fold`
abstraction and combinators for generating new folds from fold primitives.

Contains a number of algorithms for [compensated
summation](https://en.wikipedia.org/wiki/Kahan_summation_algorithm) of
floating-point numbers.
raw docstring

sicmutils.calculus.derivative

This namespace implements a number of differential operators like D, and the machinery to apply D to various structures.

This namespace implements a number of differential operators like [[D]], and
the machinery to apply [[D]] to various structures.
raw docstring

sicmutils.calculus.form-field

This namespace implements a form field operator and a number of functions for creating and working with form fields.

A form-field of rank n is an operator that takes n vector fields to a real-valued function on the manifold. A one-form field takes a single vector field.

The namespace also contains two definitions of the wedge product (alt-wedge is the second), plus the exterior-derivative.

This namespace implements a form field operator and a number of functions for
creating and working with form fields.

A form-field of rank n is an operator that takes n vector fields to a
real-valued function on the manifold. A one-form field takes a single vector
field.

The namespace also contains two definitions of the [[wedge]]
product ([[alt-wedge]] is the second), plus the [[exterior-derivative]].
raw docstring

sicmutils.calculus.indexed

This namespace implements minimal support for indexed objects and typed functions.

This namespace implements minimal support for indexed objects and typed
functions.
raw docstring

sicmutils.calculus.manifold

This namespace defines a functional API for:

  • differentiable manifolds (both manifold families like Rn and manifolds specialized to a concrete dimension)
  • manifold points
  • coordinate patches

As well as a whole bunch of defined manifolds and coordinate systems for exploration and fun!

This namespace defines a functional API for:

- differentiable manifolds (both manifold families like [[Rn]] and manifolds
  specialized to a concrete dimension)
- manifold points
- coordinate patches

As well as a whole bunch of defined manifolds and coordinate systems for
exploration and fun!
raw docstring

sicmutils.calculus.vector-calculus

This namespace contains vector calculus operators, in versions built on top of derivative/D and in Functional Differential Geometry style.

The former transform functions of scalars or vectors, while the latter take a metric and basis.

This namespace contains vector calculus operators, in versions built on top
of [[derivative/D]] _and_ in Functional Differential Geometry style.

The former transform functions of scalars or vectors, while the latter take a
metric and basis.
raw docstring

sicmutils.calculus.vector-field

This namespace implements a vector field operator and a number of functions for creating and working with vector fields.

A vector field is an operator that takes a smooth real-valued function of a manifold and produces a new function on the manifold which computes the directional derivative of the given function at each point of the manifold.

This namespace implements a vector field operator and a number of functions for
creating and working with vector fields.

A vector field is an operator that takes a smooth real-valued function of a
manifold and produces a new function on the manifold which computes the
directional derivative of the given function at each point of the manifold.
raw docstring

sicmutils.collection

This namespace contains implementations of various SICMUtils protocols for native Clojure collections.

This namespace contains implementations of various SICMUtils protocols for
native Clojure collections.
raw docstring

No vars found in this namespace.

sicmutils.complex

This namespace provides a number of functions and constructors for working with [[Complex]] numbers in Clojure and Clojurescript, and installs [[Complex]] into the SICMUtils generic arithmetic system.

For other numeric extensions, see sicmutils.ratio and [[sicmutils.numbers]].

This namespace provides a number of functions and constructors for working
with [[Complex]] numbers in Clojure and Clojurescript, and
installs [[Complex]] into the SICMUtils generic arithmetic system.

For other numeric extensions, see [[sicmutils.ratio]]
and [[sicmutils.numbers]].
raw docstring

sicmutils.differential

This namespace contains an implementation of Differential, a generalized dual number type that forms the basis for the forward-mode automatic differentiation implementation in sicmutils.

See sicmutils.calculus.derivative for a fleshed-out derivative implementation using Differential.

This namespace contains an implementation of [[Differential]], a generalized
dual number type that forms the basis for the forward-mode automatic
differentiation implementation in sicmutils.

See [[sicmutils.calculus.derivative]] for a fleshed-out derivative
implementation using [[Differential]].
raw docstring

sicmutils.env

Batteries-included namespace for the SICMUtils library.

The purpose of sicmutils.env is to bundle all of the functions used in Structure and Interpretation of Classical Mechanics and Functional Differential Geometry into a single scope. The following form will import everything from sicmutils.env into your REPL:

(require '[sicmutils.env :as e])
(e/bootstrap-repl!)

Or, in Clojure:

(require '[sicmutils.env :as e :refer :all])
Batteries-included namespace for the [SICMUtils](https://github.com/sicmutils/sicmutils/) library.

The purpose of [[sicmutils.env]] is to bundle all of the functions used
in [Structure and Interpretation of Classical
Mechanics](https://tgvaughan.github.io/sicm/) and [Functional Differential
Geometry](https://mitpress.mit.edu/books/functional-differential-geometry)
into a single scope. The following form will import everything
from [[sicmutils.env]] into your REPL:

```clojure
(require '[sicmutils.env :as e])
(e/bootstrap-repl!)
```

Or, in Clojure:

```clojure
(require '[sicmutils.env :as e :refer :all])
```
raw docstring

sicmutils.env.sci.macros

This namespace contains reimplementations of various macros from sicmutils, defined in the form required by SCI.

This namespace contains reimplementations of various macros from sicmutils,
defined in the form required by SCI.
raw docstring

sicmutils.euclid

Implementations of various greatest common divisor algorithms.

Implementations of various [greatest common
divisor](https://en.wikipedia.org/wiki/Greatest_common_divisor) algorithms.
raw docstring

sicmutils.expression

This namespace contains a number of functions and utilities for manipulating and comparing raw symbolic expression trees.

Also included is an implementation of a Literal type that forms the basis for sicmutils.abstract.number/literal-number.

This namespace contains a number of functions and utilities for manipulating
and comparing raw symbolic expression trees.

Also included is an implementation of a [[Literal]] type that forms the basis
for [[sicmutils.abstract.number/literal-number]].
raw docstring

sicmutils.expression.analyze

This namespace defines an API for working with 'expression analyzers' and the ICanonicalize protocol.

Expression analyzers find canonical forms of inputs over limited vocabularies of operations. For example, a polynomial analyzer will expose operations like addition, subtraction, multiplication, and exponentiation by positive integers (but not division).

An expression containing only these operations and symbols can then be converted to and from a polynomial canonical form, which in this example would have the effect of grouping like terms; a rational function backend would include the division operation and be capable of cancellation. Canonicalizing an expression with respect to an analyzer is therefore effected by a round-trip to and from the canonical form.

This namespace defines an API for working with 'expression analyzers' and
the [[ICanonicalize]] protocol.

Expression analyzers find canonical forms of inputs over limited vocabularies
of operations. For example, a polynomial analyzer will expose operations like
addition, subtraction, multiplication, and exponentiation by positive
integers (but not division).

An expression containing only these operations and symbols can then be
converted to and from a polynomial canonical form, which in this example would
have the effect of grouping like terms; a rational function backend would
include the division operation and be capable of cancellation. Canonicalizing
an expression with respect to an analyzer is therefore effected by a
round-trip to and from the canonical form.
raw docstring

sicmutils.expression.compile

This namespace contains tools for compiling functions implemented with the numeric operations defined in sicmutils.generic down to fast, native functions.

This namespace contains tools for compiling functions implemented with the
numeric operations defined in [[sicmutils.generic]] down to fast, native
functions.
raw docstring

sicmutils.expression.render

Functions and utilities for rendering symbolic expressions to various backends like LaTeX, infix or Javascript.

Functions and utilities for rendering symbolic expressions to various backends
like LaTeX, infix or Javascript.
raw docstring

sicmutils.function

Procedures that act on Clojure's function and multimethod types, along with extensions of the SICMUtils generic operations to functions.

See the Function cljdocs for a discussion of generic function arithmetic.

Procedures that act on Clojure's function and multimethod types, along with
extensions of the SICMUtils generic operations to functions.

See [the `Function`
cljdocs](https://cljdoc.org/d/sicmutils/sicmutils/CURRENT/doc/data-types/function)
for a discussion of generic function arithmetic.
raw docstring

sicmutils.generic

The home of most of the SICMUtils extensible generic operations. The bulk of the others live in sicmutils.value.

See the Generics cljdocs for a detailed discussion of how to use and extend the generic operations defined in sicmutils.generic and sicmutils.value.

The home of most of the SICMUtils extensible generic operations. The bulk of
the others live in [[sicmutils.value]].

See [the `Generics`
cljdocs](https://cljdoc.org/d/sicmutils/sicmutils/CURRENT/doc/basics/generics)
for a detailed discussion of how to use and extend the generic operations
defined in [[sicmutils.generic]] and [[sicmutils.value]].
raw docstring

sicmutils.modint

This namespace contains an implementation of a ModInt datatype and various operations for creating and working with ModInt instances. See "Modular Arithmetic" on Wikipedia for more details about modular arithmetic.

sicmutils.modint also extends many SICMUtils generic operations to the ModInt datatype.

This namespace contains an implementation of a [[ModInt]] datatype and various
operations for creating and working with [[ModInt]] instances. See ["Modular
Arithmetic"](https://en.wikipedia.org/wiki/Modular_arithmetic) on Wikipedia
for more details about modular arithmetic.

[[sicmutils.modint]] also extends many SICMUtils generic operations
to the [[ModInt]] datatype.
raw docstring

sicmutils.numbers

This namespace extends of all appropriate SICMUtils generic operations from sicmutils.generic and sicmutils.value to the Clojure(script) numeric tower.

For other numeric extensions, see sicmutils.ratio and sicmutils.complex.

This namespace extends of all appropriate SICMUtils generic operations
from [[sicmutils.generic]] and [[sicmutils.value]] to the Clojure(script)
numeric tower.

For other numeric extensions, see [[sicmutils.ratio]]
and [[sicmutils.complex]].
raw docstring

No vars found in this namespace.

sicmutils.numerical.derivative

This namespace contains implementations of various approaches to numerical differentiation.

Each of these methods uses Richardson extrapolation to accelerate convergence, and roundoff error estimation to bail out of the computation when roundoff error threatens to overwhelm the calculation.

For an implementation of forward-mode automatic differentiation, see sicmutils.differential (for the backing implementation) and sicmutils.calculus.derivative (for the sicmutils.operator/Operator instances that make it pleasant to use this method.)

This namespace contains implementations of various approaches to [numerical
differentiation](https://en.wikipedia.org/wiki/Numerical_differentiation).

Each of these methods uses [Richardson
extrapolation](https://en.wikipedia.org/wiki/Richardson_extrapolation) to
accelerate convergence, and roundoff error estimation to bail out of the
computation when roundoff error threatens to overwhelm the calculation.

For an implementation of [forward-mode automatic
differentiation](https://en.wikipedia.org/wiki/Automatic_differentiation),
see [[sicmutils.differential]] (for the backing implementation)
and [[sicmutils.calculus.derivative]] (for the [[sicmutils.operator/Operator]]
instances that make it pleasant to use this method.)
raw docstring

sicmutils.numerical.minimize

Entrypoint for univariate and multivariate minimization routines.

Entrypoint for univariate and multivariate minimization routines.
raw docstring

sicmutils.numerical.ode

ODE solvers for working with initial value problems.

ODE solvers for working with initial value problems.
raw docstring

sicmutils.numerical.quadrature.common

Implements utilities shared by all integrators, for example:

  • code to wrap a sequence of progressively better estimates in a common integrator interface
  • data structures implementing various integration intervals.
Implements utilities shared by all integrators, for example:

- code to wrap a sequence of progressively better estimates in a common `integrator` interface
- data structures implementing various integration intervals.
raw docstring

sicmutils.numerical.quadrature.substitute

U Substitution and Variable Changes

This namespace provides implementations of functions that accept an integrator and perform a variable change to address some singularity, like an infinite endpoint, in the definite integral.

The strategies currently implemented were each described by Press, et al. in section 4.4 of 'Numerical Recipes'.

### U Substitution and Variable Changes

This namespace provides implementations of functions that accept an
`integrator` and perform a variable change to address some singularity, like
an infinite endpoint, in the definite integral.

The strategies currently implemented were each described by Press, et al. in
section 4.4 of ['Numerical
Recipes'](http://phys.uri.edu/nigh/NumRec/bookfpdf/f4-4.pdf).
raw docstring

sicmutils.numerical.unimin.brent

This namespace contains an implementation of Brent's method for finding the minimum of a real-valued function.

This namespace contains an implementation of Brent's method for finding the
minimum of a real-valued function.
raw docstring

sicmutils.numsymb

Implementations of the generic operations for numeric types that have optimizations available, and for the general symbolic case.

Implementations of the generic operations for numeric types that have
optimizations available, and for the general symbolic case.
raw docstring

sicmutils.polynomial.factor

This namespace contains functions for factoring polynomials and symbolic expressions.

This namespace contains functions for factoring polynomials and symbolic
expressions.
raw docstring

sicmutils.polynomial.interpolate

This namespace contains a discussion of polynomial interpolation, and different methods for fitting a polynomial of degree N-1 to N points and evaluating that polynomial at some different x.

This namespace contains a discussion of polynomial interpolation, and different
methods for fitting a polynomial of degree `N-1` to `N` points and evaluating
that polynomial at some different `x`.
raw docstring

sicmutils.polynomial.richardson

Richardson interpolation is a special case of polynomial interpolation; knowing the ratios of successive x coordinates in the point sequence allows a more efficient calculation.

Richardson interpolation is a special case of polynomial interpolation; knowing
the ratios of successive `x` coordinates in the point sequence allows a more
efficient calculation.
raw docstring

sicmutils.quaternion

This namespace provides a number of functions and constructors for working with Quaternion instances in Clojure and Clojurescript, and installs Quaternion into the SICMUtils generic arithmetic system.

For other numeric extensions, see sicmutils.ratio, sicmutils.complex and [[sicmutils.numbers]].

This namespace provides a number of functions and constructors for working
with [[Quaternion]] instances in Clojure and Clojurescript, and
installs [[Quaternion]] into the SICMUtils generic arithmetic system.

For other numeric extensions, see [[sicmutils.ratio]], [[sicmutils.complex]]
and [[sicmutils.numbers]].
raw docstring

sicmutils.ratio

This namespace provides a number of functions and constructors for working with ratios in Clojure and Clojurescript.

[[clojure.lang.Ratio]] is native in Clojure. The Clojurescript implementation uses Fraction.js.

For other numeric extensions, see [[sicmutils.numbers]] and sicmutils.complex.

This namespace provides a number of functions and constructors for working
with ratios in Clojure and Clojurescript.

[[clojure.lang.Ratio]] is native in Clojure. The Clojurescript implementation
uses [Fraction.js](https://github.com/infusion/Fraction.js/).

For other numeric extensions, see [[sicmutils.numbers]]
and [[sicmutils.complex]].
raw docstring

sicmutils.rational-function.interpolate

This namespace contains a discussion of rational function interpolation, and different methods for fitting rational functions to N points and evaluating them at some value x.

This namespace contains a discussion of rational function interpolation, and
different methods for fitting rational functions to `N` points and evaluating
them at some value `x`.
raw docstring

sicmutils.series

This namespace contains an implementation of two data types:

  • Series, which represents a generic infinite series of arbitrary values, and
  • PowerSeries, a series that represents a power series in a single variable; in other words, a series where the nth entry is interpreted as the coefficient of $x^n$:
$$[a b c d ...] == $a + bx + cx^2 + dx^3 + ...$$

Many of the functions below draw on the [[sicmutils.series.impl]] namespace, which implements many of these operations on bare Clojure sequences.

The implementation follows Doug McIlroy's beautiful paper, "Power Series, Power Serious".

Doug also has a 10-line version in Haskell on his website.

This namespace contains an implementation of two data types:

- [[Series]], which represents a generic infinite series of arbitrary values, and
- [[PowerSeries]], a series that represents a power series in a single
variable; in other words, a series where the nth entry is interpreted as
the coefficient of $x^n$:

```
$$[a b c d ...] == $a + bx + cx^2 + dx^3 + ...$$
```

Many of the functions below draw on the [[sicmutils.series.impl]] namespace,
which implements many of these operations on bare Clojure sequences.

The implementation follows Doug McIlroy's beautiful paper, ["Power Series,
Power
Serious"](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.333.3156&rep=rep1&type=pdf).

Doug also has a 10-line version in Haskell on [his
website](https://www.cs.dartmouth.edu/~doug/powser.html).
raw docstring

sicmutils.simplify.rules

This namespace contains many sets of algebraic simplification rules you can use to build simplifiers for algebraic structures.

[[rules]] currently holds a mix of:

  • rulesets ported from the scmutils library
  • more fine-grained, tuneable rulesets like associative and constant-elimination designed to help you build lightweight custom term-rewriting simplifiers.

NOTE: Expect this namespace to be broken out into more fine-grained namespaces. There are TODO entries throughout the docstrings left as tips for how to proceed here.

This namespace contains many sets of algebraic simplification rules you can use
to build simplifiers for algebraic structures.

[[rules]] currently holds a mix of:

- rulesets ported from the scmutils library
- more fine-grained, tuneable rulesets like [[associative]]
  and [[constant-elimination]] designed to help you build lightweight custom
  term-rewriting simplifiers.

NOTE: Expect this namespace to be broken out into more fine-grained
namespaces. There are TODO entries throughout the docstrings left as tips for
how to proceed here.
raw docstring

sicmutils.special.elliptic

This namespace contains function to compute various elliptic integrals in Carlson symmetric form, as well as the Jacobi elliptic functions.

This namespace contains function to compute various [elliptic
integrals](https://en.wikipedia.org/wiki/Elliptic_integral) in [Carlson
symmetric form](https://en.wikipedia.org/wiki/Carlson_symmetric_form), as well
as the [Jacobi elliptic
functions](https://en.wikipedia.org/wiki/Jacobi_elliptic_functions).
raw docstring

sicmutils.special.factorial

Namespace holding implementations of variations on the factorial function.

Namespace holding implementations of variations on the factorial function.
raw docstring

sicmutils.util.aggregate

Namespace with algorithms for aggregating sequences in various ways.

Namespace with algorithms for aggregating sequences in various ways.
raw docstring

sicmutils.util.stream

This namespace contains various standard sequences, as well as utilities for working with strict and lazy sequences.

This namespace contains various standard sequences, as well as utilities for
working with strict and lazy sequences.
raw docstring

sicmutils.util.vector-set

Contains an implementation and API for an 'ordered set' data structure backed by a persistent vector.

Contains an implementation and API for an 'ordered set' data structure backed
by a persistent vector.
raw docstring

sicmutils.value

The home of most of the protocol-based extensible generic operations offered by SICMUtils. The bulk of the others live in sicmutils.generic.

See the Generics cljdocs for a detailed discussion of how to use and extend the generic operations defined in sicmutils.generic and sicmutils.value.

The home of most of the protocol-based extensible generic operations offered by
SICMUtils. The bulk of the others live in [[sicmutils.generic]].

See [the `Generics`
cljdocs](https://cljdoc.org/d/sicmutils/sicmutils/CURRENT/doc/basics/generics)
for a detailed discussion of how to use and extend the generic operations
defined in [[sicmutils.generic]] and [[sicmutils.value]].
raw docstring

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

× close