1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//! The problem's side of the engine: the [`Equations`] trait, the state at a point and the work arrays of one Taylor
//! step.
//!
//! A problem has `NF` fields, each a function of x and of a periodic variable theta held on `M = 8 B` collocation
//! points (`Fl<T, B>`). Between the nodes the engine carries the state by Taylor series in x; the equations supply
//! the series' coefficients by the recursion of their right-hand side. At the two ends the solution starts from
//! unknown data (`NL` fields at the left end, `NR` at the right): the equations map the data to the state at the
//! adjacent node, by a series at a singular point or by boundary conditions at a regular one. `NG` global unknowns
//! (an eigenvalue, a period) enter every block.
use crateLane;
use Fl;
/// The state at a point: the `NF` fields
pub type State<T, const B: usize> = ;
/// The Taylor coefficients of one step about its start x0 and the equations' scratch series.
///
/// `c[f][k]` is coefficient k of field f, k = 0..=kt. The engine sets order 0 (the state at x0) before
/// [`Equations::taylor_coeffs`] and reads orders 0..=kt after it. `aux[i]` are `NAUX` series the recursion may keep
/// (products, right-hand sides), each of the same length; their contents are the equations'.
/// A boundary-value problem for the engine: its sizes, the Taylor recursion of its right-hand side, and the maps
/// from the endpoint data to the states at the end nodes.
///
/// Every method is generic over the lane type, so that one code gives the residual (values), the exact Jacobian
/// (duals), the Newton step in any precision and the residual's series in a parameter (jets). Constants enter as
/// double-double (`Fl::muls`, `Fl::cst`); a parameter of the equations that the residual is expanded in enters through
/// the lane's parameter arithmetic (`Lane::P`, `Param::var`).