(coordinate-functions coordinate-system)Returns a structure similar to the manifold/coordinate-prototype of
coordinate-system, where every entry is a function from manifold point =>
the associated component of the point in the coordinate representation
described by coordinate-system.
Returns a structure similar to the [[manifold/coordinate-prototype]] of `coordinate-system`, where every entry is a function from manifold point => the associated component of the point in the coordinate representation described by `coordinate-system`.
(define-coordinates coordinate-prototype coordinate-system)Give some coordinate-system like R2-rect and a coordinate-prototype like
[x y] or (up x y),binds the following definitions into the namespace
where define-coordinates is invoked:
R2-rect binds to a new version of the coordinate system with its
coordinate-prototype replaced by the supplied prototype
x and y bind to coordinate functions, i.e., functions from manifold point
to that particular coordinate
d:dx and d:dy bind to the corresponding vector field procedures
dx and dy bind to 1-forms for each coordinate.
Give some `coordinate-system` like `R2-rect` and a `coordinate-prototype` like `[x y]` or `(up x y), `binds the following definitions into the namespace where [[define-coordinates]] is invoked: - `R2-rect` binds to a new version of the coordinate system with its `coordinate-prototype` replaced by the supplied prototype - `x` and `y` bind to coordinate functions, i.e., functions from manifold point to that particular coordinate - `d:dx` and `d:dy` bind to the corresponding vector field procedures - `dx` and `dy` bind to 1-forms for each coordinate.
(let-coordinates bindings & body)similar to a let binding that holds pairs of
<coordinate-structure-prototype>, <coordinate-system>
And internally binds, for each pair: (take [x y] and m/R2-rect as
examples):
The coordinate system symbol R2-rect to a new version of the coordinate
system with its coordinate-prototype replaced by the one you supplied.
That's (up x y) in this example.
the entries x and y to coordinate functions, i.e., functions from manifold
point to this particular coordinate
d:dx and d:dy vector field procedures (I'm fuzzy here!)
dx and dy 1-forms for each coordinate (fuzzy here too!)
Example:
(let-coordinates [[x y] R2-rect
[r theta] R2-polar]
;; bindings:
;; R2-rect, x, y, d:dx, d:dy, dx, dy
;; R2-polar, r, theta, d:dr, d:dtheta, dr, dtheta
body...)
similar to a `let` binding that holds pairs of
<coordinate-structure-prototype>, <coordinate-system>
And internally binds, for each pair: (take `[x y]` and `m/R2-rect` as
examples):
- The coordinate system symbol `R2-rect` to a new version of the coordinate
system with its `coordinate-prototype` replaced by the one you supplied.
That's `(up x y)` in this example.
- the entries `x` and `y` to coordinate functions, i.e., functions from manifold
point to this particular coordinate
- `d:dx` and `d:dy` vector field procedures (I'm fuzzy here!)
- `dx` and `dy` 1-forms for each coordinate (fuzzy here too!)
Example:
```clojure
(let-coordinates [[x y] R2-rect
[r theta] R2-polar]
;; bindings:
;; R2-rect, x, y, d:dx, d:dy, dx, dy
;; R2-polar, r, theta, d:dr, d:dtheta, dr, dtheta
body...)
```(quotify-coordinate-prototype p)Scmutils wants to allow forms like this:
(using-coordinates (up x y) R2-rect ...)
Note that x, y are unquoted. This function converts such an unquoted form
into a quoted one that could be evaluated to return an up-tuple of the
symbols:
(up 'x 'y)
Such an object is useful for [[structure/mapr]].
Scmutils wants to allow forms like this: ```clojure (using-coordinates (up x y) R2-rect ...) ``` Note that `x`, `y` are unquoted. This function converts such an unquoted form into a quoted one that could be evaluated to return an up-tuple of the symbols: ```clojure (up 'x 'y) ``` Such an object is useful for [[structure/mapr]].
(using-coordinates coordinate-prototype coordinate-system & body)using-coordinates wraps let-coordinates and allows you to supply a
single coordinate prototype and a single coordinate system.
See let-coordinates for details about what symbols are bound inside the
body.
Example:
(using-coordinates (up x y) R2-rect
body...)
[[using-coordinates]] wraps [[let-coordinates]] and allows you to supply a
single coordinate prototype and a single coordinate system.
See [[let-coordinates]] for details about what symbols are bound inside the
body.
Example:
```clojure
(using-coordinates (up x y) R2-rect
body...)
```cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |