base.sls 58 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471
  1. ;;; Copyright © 2016 Federico Beffa
  2. ;;;
  3. ;;; This program is free software; you can redistribute it and/or modify it
  4. ;;; under the terms of the GNU General Public License as published by
  5. ;;; the Free Software Foundation; either version 3 of the License, or (at
  6. ;;; your option) any later version.
  7. ;;;
  8. ;;; This program is distributed in the hope that it will be useful, but
  9. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  10. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. ;;; GNU General Public License for more details.
  12. ;;;
  13. ;;; You should have received a copy of the GNU General Public License
  14. ;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. ;;; Code
  16. #!chezscheme
  17. (library (scmutils base)
  18. (export
  19. ;; base.sls
  20. derivative-symbol
  21. with-si-units->expression
  22. ;; ./scmutils/general/weak.scm
  23. weak-pair? weak-cons weak-car weak-cdr weak-pair/car?
  24. list->weak-list weak-set-cdr! get-weak-member weak-find
  25. weak-length weak-finder weak-find-equal?
  26. weak-find-eqv? weak-find-eq? purge-list clean-weak-list
  27. clean-weak-alist clean-subtable-alist clean-expression-table
  28. clean-alist
  29. ;;./scmutils/general/memoize.scm ; OK
  30. *memoizers* *auditing-memoizers* show-memoizer-statistics
  31. function-expression clear-memoizer-tables
  32. linear-memoize-1arg linear-memoize same-args?
  33. equal-args? eqv-args? eq-args?
  34. weak-find-equal-args? weak-find-eqv-args? weak-find-eq-args?
  35. *not-seen* hash-memoize-1arg hash-memoize memoize-procedure!
  36. unmemoize-procedure!
  37. ;;./scmutils/general/hashcons.scm ; OK
  38. cons-unique hash-cons pair-eqv? pair-eqv-hash-mod
  39. the-cons-table canonical-copy map-unique
  40. ;;./scmutils/general/resource-limit.scm
  41. *time-upper-limit* with-limited-time
  42. ;;./scmutils/general/stack-queue.scm
  43. stack&queue-empty? stack&queued? push! add-to-end! pop!
  44. ;;./scmutils/general/logic-utils.scm
  45. true? assert *assumption-tolerance-multiplier* assume!
  46. add-assumption! &or *or &and
  47. *and conjunction disjunction negation implication
  48. ;;./scmutils/general/list-utils.scm
  49. variable<? safe-map count-elements find-first countsymbols
  50. butlast last list-transpose list-index-of delete-nth
  51. list:elementwise map-distinct-pairs distinct-pairs
  52. for-each-distinct-pair fringe-smaller-than? split-list
  53. find-infimum subst delq-once substitute-multiple
  54. map&reduce
  55. ;;%append %reverse! %reverse
  56. ;;./scmutils/general/table.scm
  57. make-table
  58. *no-value* no-value? get getter
  59. put! putter! get-with-default getter-with-default
  60. get-with-check getter-with-check add-to-list!
  61. adjoin-to-list! store! lookup rlookup rassq rassoc disassoc
  62. default-lookup table-of lookup
  63. ;;./scmutils/general/sets.scm
  64. make-sets-package empty-set
  65. empty-set? singleton-set singleton-set? adjoin-set
  66. remove-set element-set? intersect-sets union-sets
  67. difference-sets subset-sets? list->set set->list symbols
  68. real-numbers <numbers numbers list-adjoin list-union
  69. list-intersection list-difference duplications?
  70. remove-duplicates subset? same-set? eq-set/remove
  71. eq-set/union eq-set/intersection
  72. eq-set/difference eq-set/subset? eq-set/equal?
  73. multi-set/intersection multi-set/difference
  74. ;;./scmutils/general/permute.scm
  75. permutations combinations list-interchanges split-permutations
  76. permutation-interchanges permute sort-and-permute subpermute
  77. int:factorial number-of-permutations number-of-combinations
  78. permutation-parity
  79. ;;./scmutils/general/eq-properties.scm
  80. eq-properties eq-put! eq-get eq-rem! eq-adjoin! eq-plist
  81. eq-clone! eq-label! eq-path
  82. ;;./scmutils/general/gjs-cselim.scm
  83. gjs/cselim make-let-expression make-canonical-lets
  84. make-expression-recorder record-expression! expressions-seen
  85. variable->expression occurs-in?
  86. ;;./scmutils/kernel/numeric.scm ; OK
  87. zero one -one two three pi -pi pi/6 -pi/6 pi/4
  88. -pi/4 pi/3 -pi/3 pi/2 -pi/2 2pi -2pi
  89. :zero :one :-one :two :three :pi :+pi :-pi :pi/6 :+pi/6
  90. :-pi/6 :pi/4 :+pi/4 :-pi/4 :pi/3 :+pi/3 :-pi/3 :pi/2 :+pi/2
  91. :-pi/2 :2pi :+2pi :-2pi *machine-epsilon* *sqrt-machine-epsilon*
  92. :euler :phi
  93. exact-zero? exact-one? :ln2 :ln10
  94. ;; log10 log2 exp10 exp2
  95. :minlog safelog principal-value
  96. principal-value-minus-pi-to-pi principal-value-zero-to-2pi
  97. principal-range
  98. ;; one? square cube negate invert cot sec csc
  99. ;; sinh cosh tanh sech csch
  100. factorial exact-quotient binomial-coefficient stirling-first-kind
  101. stirling-second-kind close-enuf?
  102. ;; sigma
  103. gcd-rational
  104. round-complex gcd-complex exact-complex? scheme-number-gcd
  105. *no-rationals-in-divide* scheme-number-divide sgn quadratic
  106. cubic
  107. ;;./scmutils/kernel/utils.scm
  108. do-up do-down sign defer-application all-equal?
  109. left-circular-shift right-circular-shift
  110. *at-least-zero* *exactly-zero* *at-least-one* *exactly-one*
  111. *at-least-two* *exactly-two* *at-least-three*
  112. *exactly-three* *one-or-two* exactly-n? any-number?
  113. ;; compose compose-n identity compose-2 compose-bin
  114. any? none?
  115. constant joint-arity a-reduce filter make-map bracket
  116. apply-to-all nary-combine binary-combine unary-combine
  117. iterated iterate-until-stable make-function-of-vector
  118. make-function-of-arguments alphaless?
  119. concatenate-names-maker concatenate-names the-null-symbol
  120. concatenate-names print-depth print-breadth wallp-pp pp-it
  121. watch-it cpp ;*taking-notes* *showing-notes* *notes*
  122. note-that! clear-notes! display-note show-notes
  123. ;;./scmutils/kernel/iterat.scm
  124. generate-list list:generate list-with-substituted-coord
  125. generate-vector vector-elementwise vector-forall
  126. vector-exists vector-accumulate
  127. vector-with-substituted-coord array-ref array-set!
  128. generate-array array-elementwise array-copy num-rows
  129. num-cols nth-row nth-col array-with-substituted-row
  130. array-with-substituted-col array-by-rows array-by-cols
  131. transpose-array
  132. ;;./scmutils/kernel/express.scm
  133. operator operands first-operand second-operand rest-operands
  134. substitute has-property? get-property add-property!
  135. make-numerical-literal make-real-literal make-literal
  136. make-combination expression-of down-maker? up-maker?
  137. vector-maker? quaternion-maker? matrix-by-rows-maker?
  138. matrix-by-columns-maker? matrix-maker?
  139. compound-data-constructor? expression
  140. up-constructor-name down-constructor-name object-name
  141. procedure-expression generate-list-of-symbols variables-in
  142. pair-up expression-walker expr:< expr:=
  143. ;;./scmutils/kernel/ghelper.scm
  144. make-generic-operator identity
  145. get-operator-record set-operator-record!
  146. make-operator-record operator-record-arity
  147. operator-record-finder set-operator-record-finder!
  148. operator-record-tree set-operator-record-tree!
  149. generic-operator-arity acceptable-arglist? assign-operation
  150. defhandler bind-in-tree no-way-known dwim get-handler
  151. ;;./scmutils/kernel/generic.scm
  152. g:type g:type-predicate g:arity g:inexact? g:zero-like g:one-like
  153. g:identity-like
  154. g:zero? generic:one? g:one?
  155. g:identity? g:negate g:invert g:square g:sqrt g:exp g:log
  156. g:sin g:cos g:asin g:acos g:sinh g:cosh g:abs g:determinant
  157. g:trace
  158. g:transpose
  159. ;;; We should put these in a separate file and include it here and
  160. ;;; in 'calculus/manifold.scm'. We don't export them as they
  161. ;;; belong in '(scmutils generic).
  162. ;;coordinate-system coordinate-system-dimension
  163. g:dimension g:solve-linear
  164. make-operator generic:partial-derivative
  165. g:derivative g:partial-derivative g:partial generic:=
  166. g:=:bin generic:< g:<:bin generic:<= g:<=:bin generic:>
  167. g:>:bin generic:>= g:>=:bin generic:+ g:+:bin generic:-
  168. g:-:bin generic:* g:*:bin generic:/ g:/:bin generic:expt
  169. g:expt g:gcd:bin g:dot-product g:cross-product
  170. g:outer-product g:make-rectangular g:make-polar g:real-part
  171. g:imag-part g:magnitude g:angle g:conjugate g:atan g:atan1
  172. g:atan2 generic:apply g:apply applicable-literal?
  173. g:= g:=:n g:< g:<:n g:<= g:<=:n g:> g:>:n g:>= g:>=:n g:+
  174. g:+:n g:* g:*:n g:- g:-:n g:/ g:/:n g:gcd g:gcd:n
  175. ;;./scmutils/kernel/mathutil.scm
  176. ratnum? g:cube g:log10 g:log2 g:exp10 g:exp2 g:tan g:cot
  177. g:sec g:csc g:tanh g:sech g:csch g:asinh g:acosh g:atanh
  178. g:arg-shift g:arg-scale g:sigma g:ref component
  179. ref-internal adjust-index adjust-end g:size g:compose
  180. g:identity g:compose-2 g:compose-bin
  181. ;;./scmutils/kernel/strutl.scm ; OK
  182. stream:for-each print-stream combiner-padded-streams stream-of-iterates
  183. infinite-stream-of stream-evaluate stream-apply map-stream
  184. map-streams merge-streams shorten-stream stream:+ stream:-
  185. stream:* stream:/ zero-stream one-stream integers-starting-from
  186. natural-number-stream factorial-stream stream-of-powers stream:inflate
  187. stream:list-append
  188. ;;./scmutils/kernel/fbe-extapply.scm
  189. *enable-literal-apply*
  190. with-literal-apply-enabled
  191. with-literal-reconstruction-enabled
  192. ;;./scmutils/kernel/types.scm
  193. make-type type-tag abstract-type-tag quantity-predicate
  194. concrete-predicate abstract-predicate quaternion-type-tag
  195. operator-type-tag abstract-quantity? abstract-number?
  196. literal-number? literal-real? numerical-quantity?
  197. with-units? units? compound-type-tag? not-compound? scalar?
  198. abstract-vector? vector-quantity? quaternion?
  199. quaternion-quantity? up? abstract-up? up-quantity? down?
  200. abstract-down? down-quantity? structure? abstract-structure?
  201. matrix? matrix-quantity? abstract-matrix? square-matrix?
  202. square-abstract-matrix? operator? not-operator?
  203. function-quantity? function? cofunction? abstract-function?
  204. typed-function? typed-or-abstract-function? differential?
  205. not-differential? series? not-series?
  206. not-differential-or-compound? not-d-c-u?
  207. ;;./scmutils/kernel/modarith.scm
  208. modular-type-tag modint? mod:make mod:make-internal
  209. mod:residue mod:modulus mod:reduce mod:unary-combine
  210. modint:invert mod:invert mod:binary-combine
  211. modint:+ modint:- modint:* modint:/ modint:expt
  212. mod:+ mod:- mod:* mod:/ mod:expt mod:= mod:chinese-remainder
  213. modint:chinese-remainder
  214. ;;./scmutils/kernel/diff.scm
  215. make-differential-quantity differential-term-list
  216. differential->terms terms->differential
  217. make-differential-term differential-tags
  218. differential-coefficient differential-of diff:arity
  219. diff:apply same-differential-tags? <differential-tags? <dts
  220. differential-tag-count <dt =dt union-differential-tags
  221. intersect-differential-tags dtl:+ dtl:* tdtl:* d:+ d:*
  222. diff:unary-op finite-part infinitesimal-part
  223. terms->differential-collapse diff:binary-op
  224. max-order-tag without-tag with-tag diff:atan2 diff:abs
  225. diff:conjugate diff:real-part diff:imag-part diff:magnitude
  226. diff:angle diff:type diff:type-predicate diff:zero-like
  227. diff:one-like diff:zero? diff:one? diff:binary-comparator
  228. diff:derivative
  229. simple-derivative-internal make-x+dx differential-object
  230. extract-dx-part hide-tag-in-object
  231. hide-tag-in-procedure wrap-procedure-differential-tags
  232. replace-differential-tag remove-differential-tag
  233. insert-differential-tag
  234. ;;./scmutils/kernel/deriv.scm ; OK
  235. deriv:euclidean-structure
  236. deriv:multivariate-derivative
  237. ;;./scmutils/kernel/operator.scm
  238. o:type o:type-predicate o:arity make-op operator-procedure
  239. operator-subtype operator-name operator-arity
  240. operator-optionals simple-operator? set-operator-optionals!
  241. operator-merge-subtypes operator-merge-arities
  242. operator-merge-optionals o:zero-like o:one-like o:+ o:-
  243. o:o+f o:f+o o:o-f o:f-o o:negate o:* o:f*o o:o*f o:o/n
  244. o:expt o:exp o:cos o:sin expn
  245. ;;./scmutils/kernel/function.scm
  246. f:type f:type-predicate f:unary f:binary coerce-to-function
  247. f:arity f:zero-like f:one-like f:identity-like f:transpose
  248. ;;./scmutils/kernel/numbers.scm
  249. n:type n:type-predicate *numbers-are-constant-functions*
  250. n:arity n:self n:deriv n:inexact? n:zero-like n:one-like
  251. n:zero? n:one? n:negate n:invert n:sqrt n:exp n:log n:sin
  252. n:cos n:tan n:sec n:csc n:asin n:acos n:atan n:sinh n:cosh
  253. n:tanh n:sech n:csch n:abs n:= n:< n:<= n:> n:>= n:+ n:- n:*
  254. n:/ n:expt n:gcd n:make-rectangular n:make-polar n:real-part
  255. n:imag-part n:magnitude n:angle n:conjugate n:log10 n:log2
  256. n:exp10 n:exp2 n:square n:cube n:sigma literal-number
  257. make-numerical-combination an:zero-like an:one-like an:=
  258. an:zero? an:one? abn:= abn:zero? abn:one? *known-reals*
  259. known-real? declare-known-reals declare-unknown-reals
  260. with-known-reals
  261. ;;./scmutils/kernel/vectors.scm ; OK
  262. v:type v:type-predicate v:generate vector:generate v:dimension
  263. v:elementwise vector:elementwise
  264. v:zero? v:make-zero v:zero-like literal-vector
  265. v:make-basis-unit v:basis-unit? vector=vector vector+vector
  266. vector-vector v:negate v:scale scalar*vector vector*scalar
  267. vector/scalar v:inner-product v:dot-product v:square v:cube
  268. euclidean-norm complex-norm maxnorm v:make-unit v:unit?
  269. v:conjugate v:cross-product general-inner-product v:apply
  270. v:arity v:partial-derivative v:inexact? abstract-vector
  271. av:arity av:zero-like make-vector-combination
  272. ;;./scmutils/kernel/structs.scm
  273. s:type sc:type-predicate sr:type-predicate vector->up
  274. vector->down literal-up literal-down s:structure up->vector
  275. down->vector s:->vector up down s:opposite s:same s:length
  276. s:ref s:with-substituted-coord s:subst s:subst-internal
  277. s:generate s:forall s:select s:map-chain s:fringe
  278. s:foreach s:map/r s:map/r/l s:map s:map/l s:elementwise
  279. structure:elementwise rexists s:arity s:inexact? s:zero?
  280. s:unary s:zero-like s:negate s:magnitude s:abs s:conjugate
  281. structure=structure s:binary structure+structure
  282. structure-structure s:multiply
  283. *allowing-incompatible-multiplication*
  284. s:compatible-for-contraction? s:compatible-elements?
  285. s:outer-product structure:expt scalar*structure
  286. structure*scalar structure/scalar s:square s:dot-product
  287. s:partial-derivative s:apply abstract-up abstract-down
  288. as:arity ac:zero-like ar:zero-like make-up-combination
  289. make-down-combination list->up-structure matrix->structure
  290. submatrix up-structure->list s:transpose s:transpose1
  291. s:inverse s:inverse1 A_mn->Mnm Mnm->A_mn A^mn->Mmn Mmn->A^mn
  292. A^m_n->Mmn Mmn->A^m_n A_m^n->Mnm Mnm->A_m^n \x32;-down?
  293. \x32;-up? up-of-downs? down-of-ups? \x32;-tensor?
  294. single-layer-down? single-layer-up? structure->matrix
  295. s:invert scalar/tensor solve-linear-left solve-linear-right
  296. s:divide-by-structure s:determinant s:trace flip-indices
  297. flip-outer-index typical-object structure->access-chains
  298. structure->prototype compatible-zero dual-zero
  299. compatible-shape s:transpose-outer s:contract ultra-flatten
  300. s:dimension ultra-unflatten *careful-conversion* s->m m->s
  301. as-matrix
  302. ;;./scmutils/kernel/matrices.scm
  303. m:type m:type-predicate tag-matrix m:num-rows m:num-cols
  304. matrix->array array->matrix m:dimension matrix-size
  305. column-matrix? row-matrix? vector->row-matrix
  306. vector->column-matrix row-matrix
  307. column-matrix column-matrix->vector row-matrix->vector
  308. m:nth-row m:nth-col m:diagonal literal-matrix
  309. literal-column-matrix literal-row-matrix up->column-matrix
  310. column-matrix->up down->row-matrix row-matrix->down
  311. matrix-by-rows matrix-by-row-list matrix-by-cols
  312. matrix-by-col-list matrix-with-substituted-row matrix-ref
  313. m:ref m:generate matrix:generate m:transpose m:elementwise
  314. matrix:elementwise m:submatrix m:minor m:zero? m:make-zero
  315. m:zero-like m:make-identity m:identity? m:one-like
  316. m:identity-like m:make-diagonal diagonal? matrix=matrix
  317. matrix-binary-componentwise matrix+matrix matrix-matrix
  318. matrix*matrix m:square m:expt matrix*scalar scalar*matrix
  319. m:scale m:outer-product m:inner-product matrix/matrix
  320. matrix*up down*matrix matrix*vector vector*matrix
  321. matrix/scalar scalar/matrix matrix=scalar scalar=matrix
  322. matrix+scalar scalar+matrix matrix-scalar scalar-matrix
  323. m:trace m:conjugate m:negate m:dot-product-row
  324. m:dot-product-column m:cross-product-row
  325. m:cross-product-column m:exp m:sin m:cos general-determinant
  326. Cramers-rule classical-adjoint-formula
  327. easy-zero? numerical? m:invert m:solve m:determinant
  328. m:rsolve m:solve-linear set-numerical! m:apply m:arity
  329. m:partial-derivative m:inexact? abstract-matrix am:arity
  330. am:zero-like am:one-like am:id-like make-matrix-combination
  331. ;;./scmutils/kernel/quaternion.scm ; OK
  332. q:type q:type-predicate make-quaternion q:make quaternion
  333. quaternion->vector q:->vector quaternion-ref q:ref
  334. real&3vector->quaternion q:real&3vector->
  335. quaternion->3vector q:3vector quaternion->real-part
  336. q:real-part quaternion+quaternion q:+ quaternion-quaternion
  337. q:- quaternion*quaternion q:* q:conjugate q:negate
  338. scalar*quaternion quaternion*scalar quaternion/scalar
  339. q:invert quaternion/quaternion q:/ q:magnitude q:make-unit
  340. q:unit? q:exp q:log q:zero-like q:zero? q:= q:inexact?
  341. q:apply q:arity q:partial-derivative
  342. q:1 q:i q:j q:k s:1 s:i s:j s:k
  343. quaternion->4x4 q:->4x4 4x4->quaternion q:4x4->
  344. angle-axis->quaternion q:angle-axis-> quaternion->angle-axis
  345. q:->angle-axis q:rotate
  346. rotation-matrix->quaternion q:rotation-matrix->
  347. quaternion->rotation-matrix q:->rotation-matrix
  348. ;;./scmutils/kernel/pseries.scm ; OK
  349. series:type series:type-predicate make-series series:arity
  350. series:promote-arity series->stream series:same-arity
  351. series-wrapper series:generate series:for-each
  352. series:elementwise series:print series:ref series
  353. power-series series:zero series:one series:identity constant-series
  354. coefficient+series series+coefficient coefficient-series
  355. series-coefficient coefficient*series series*coefficient
  356. series/coefficient coefficient/series add-series series:add
  357. sub-series series:sub negate-stream series:negate stream:c*s
  358. stream:s/c mul-series series:mul invert-series series:invert
  359. series:div integrate-helper *integrate-series integral-series-tail
  360. partial-sums partial-sums-stream series:sum series:value
  361. series:->function series:inflate series:zero-like
  362. series:one-like binomial-series
  363. cos-series sin-series exp-series cosh-series sinh-series
  364. tan-series atan-series
  365. ;;./scmutils/kernel/numsymb.scm ; OK
  366. enable-constructor-simplifications?
  367. enable-constructor-simplifications incremental-simplifier
  368. symbolic-operator-table make-numsymb-expression
  369. addto-symbolic-operator-table heuristic-number-canonicalizer
  370. numerical-expression-canonicalizer numerical-expression
  371. make-rectangular? symb:make-rectangular make-polar?
  372. symb:make-polar real-part? symb:real-part imag-part?
  373. symb:imag-part magnitude? symb:magnitude symb:magexpr angle?
  374. symb:angle symb:anglexpr conjugate? symb:conjugate
  375. *conjugate-transparent-operators* symb:&
  376. equality? symb:=:bin symb:= symb:zero? symb:one? sum?
  377. symb:addends symb:+ symb:add symb:add:n symb:sum product?
  378. symb:multiplicands symb:* symb:mul symb:mul:n symb:product
  379. difference? symb:minuend symb:subtrahend symb:- symb:dif
  380. symb:dif:n symb:difference quotient? symb:numerator
  381. symb:denominator symb:dividend symb:divisor symb:/ symb:quo
  382. symb:quo:n symb:quotient allow-nary-difference-quotient abs?
  383. symb:abs expt? symb:expt square? symb:square cube? symb:cube
  384. negate? symb:negate invert? symb:invert sqrt? symb:sqrt exp?
  385. symb:exp log? symb:log heuristic-sin-cos-simplify
  386. relative-integer-tolerance absolute-integer-tolerance n:pi/4
  387. n:pi n:2pi n:pi/2 n:pi/3 n:pi/6 almost-integer?
  388. n:zero-mod-pi? symb:zero-mod-pi? n:pi/2-mod-2pi?
  389. symb:pi/2-mod-2pi? n:-pi/2-mod-2pi? symb:-pi/2-mod-2pi?
  390. n:pi/2-mod-pi? symb:pi/2-mod-pi? n:zero-mod-2pi?
  391. symb:zero-mod-2pi? n:pi-mod-2pi? symb:pi-mod-2pi?
  392. n:pi/4-mod-pi? symb:pi/4-mod-pi? n:-pi/4-mod-pi?
  393. symb:-pi/4-mod-pi? sin? symb:sin cos? symb:cos tan? symb:tan
  394. csc? symb:csc sec? symb:sec atan? symb:atan asin? symb:asin
  395. acos? symb:acos cosh? symb:cosh sinh? symb:sinh max?
  396. symb:max min? symb:min derivative? symb:derivative
  397. ederivative? symb1:+ addup-args symb1:*
  398. mulup-args symb1:- symb1:/
  399. symb:elementary-access?
  400. ;;./scmutils/kernel/heuristic.scm
  401. heuristic-rounding-tolerance heuristic-rounding-denominator
  402. heuristic-one-part-insignificant heuristic-rounding-tiny
  403. heuristic-symbolize? heuristic-canonicalize-real
  404. heuristic-round-real h-c-r heuristic-canonicalize-complex
  405. heuristic-round-complex h-c-c
  406. ;;./scmutils/kernel/fbe-genenv.scm
  407. ;;./scmutils/kernel/chez-custom-repl.scm ; OK
  408. saved-repl-print
  409. *scmutils/repl-simplifier*
  410. scmutils/simplify
  411. scmutils/repl-print
  412. pple
  413. start-scmutils-print! stop-scmutils-print!
  414. display-expression de
  415. ;;./scmutils/simplify/pcf.scm ; OK
  416. poly/make-identity poly/make-constant poly/make-c*x^n
  417. poly/identity? poly/monic? poly/negative? poly/equal?
  418. poly/extend poly/contract poly/contractable? poly/make-vars
  419. poly/check-same-arity poly/add poly/sub poly/negate poly/mul
  420. poly/scale-1 poly/scale poly/square poly/expt
  421. poly/div poly/quotient poly/not-divisible? map-poly-terms
  422. poly/normalize poly/pseudo-remainder poly/content-maker
  423. poly/primitive-part-maker
  424. poly/gcd/euclid euclid-wallp? poly/gcd-euclid
  425. ;; poly/gcd-collins collins-wallp?
  426. gcd-memoizer *gcd-memoizer-enabled* *gcd-hit* *gcd-miss*
  427. unordered-pair-equal? unordered-poly-hash n-random-primes
  428. skip-initial-primes prime-numbers-vector hash-args-vector
  429. poly/derivative-partial
  430. poly/partial-derivative poly/derivative-principal
  431. poly/horner-univariate poly/horner poly/horner-helper
  432. poly/hh poly/arg-scale poly/arg-shift poly/abs
  433. poly/leading-base-coefficient poly/horner-with-error
  434. pcf? explicit-pcf? poly/type poly/arity poly/termlist
  435. poly/sparse? poly/make-from-sparse poly/dense?
  436. poly/make-from-dense poly/make poly/degree
  437. poly/leading-coefficient poly/except-leading-term
  438. *dense-break-even* poly/adjoin poly/coefficient
  439. poly/coefficients poly/base-coefficients
  440. poly/principal-reverse poly/->dense poly/->sparse
  441. poly/lowest-order poly/trailing-coefficient poly/sparse/zero
  442. poly/sparse/zero? poly/sparse/one poly/sparse/identity
  443. poly/sparse/degree
  444. poly/sparse/leading-coefficient
  445. poly/sparse/except-leading-term poly/sparse/adjoin
  446. poly/sparse/coefficients poly/sparse/coefficient
  447. poly/sparse/principal-reverse poly/sparse/lowest-order
  448. poly/sparse/trailing-coefficient poly/dense/zero
  449. poly/dense/zero? poly/dense/one poly/dense/identity
  450. poly/dense/degree
  451. poly/dense/leading-coefficient
  452. poly/dense/except-leading-term poly/dense/adjoin
  453. poly/dense/coefficients poly/dense/coefficient
  454. poly/dense/principal-reverse poly/dense/lowest-order
  455. poly/dense/trailing-coefficient dense->sparse sparse->dense
  456. poly/identity poly:arity poly:degree poly:zero? poly:one?
  457. poly:negate poly:square poly:derivative poly:= poly:+ poly:-
  458. poly:* poly:expt poly:divide poly:pseudo-remainder
  459. poly:quotient poly:partial-derivative poly:arg-shift
  460. poly:arg-scale poly:apply poly:zero poly:one poly:identity
  461. poly:horners-rule-with-error poly:value poly:principal-value
  462. poly:principal-reverse poly:scale poly:normalize-by
  463. poly:lowest-order poly:trailing-coefficient
  464. poly:leading-coefficient poly:except-leading-term
  465. poly:leading-base-coefficient poly:extend poly:contract
  466. poly:contractable? poly:new-variables poly:dense->
  467. poly:->dense pcf:->expression pcf:expression->
  468. poly:->lambda +$poly -$poly pcf:operator-table pcf:operators-known
  469. ;;./scmutils/simplify/rcf.scm ; OK
  470. rcf-tag ratform? make-ratform ratform-numerator
  471. ratform-denominator rcf:zero rcf:one rcf:zero? rcf:one?
  472. rcf:arity make-rcf rcf:rcf? rcf:pcf? rcf:=
  473. rcf:+ rcf:- rcf:negate rcf:* rcf:square rcf:/ rcf:invert
  474. rcf:gcd rcf:binary-operator rcf:numerator rcf:denominator
  475. rcf:expt rcf:arg-scale rcf:arg-shift rcf:value
  476. rcf:compose
  477. ;; rcf:derivative
  478. assoc-accumulation
  479. +$rcf *$rcf assoc-inverse-accumulation
  480. -$rcf /$rcf
  481. rcf:->expression rcf:expression->
  482. rcf:operator-table rcf:operators-known
  483. ;;./scmutils/simplify/fpf.scm ; OK
  484. fpf:coeff? fpf:coeff-zero? fpf:coeff-add fpf:coeff-sub
  485. fpf:coeff-mul fpf:coeff-div fpf:coeff-negate fpf:coeff-expt
  486. fpf:coeff-divide fpf? explicit-fpf? fpf:arity
  487. fpf:number-of-vars fpf:make fpf:terms fpf:make-term
  488. fpf:exponents fpf:coefficient fpf:constant-term? all-zeros?
  489. fpf:make-constant fpf:zero fpf:one fpf:-one fpf:identity
  490. fpf:new-variables fpf:same-exponents? fpf:>exponents?
  491. fpf:graded> fpf:lexicographical> fpf:map-coefficients
  492. fpf:binary-combine fpf:+ fpf:add-terms fpf:add-terms-general
  493. fpf:- fpf:scale fpf:scale-terms fpf:scale-terms-general
  494. fpf:negate fpf:negate-terms fpf:negate-terms-general fpf:*
  495. fpf:mul-terms fpf:mul-terms-general fpf:term*terms-general
  496. fpf:combine-exponents fpf:square fpf:expt
  497. fpf:divide fpf:divide-terms fpf:divide-terms-general
  498. fpf:horner-eval fpf:horner-eval-terms
  499. fpf:horner-eval-general fpf:->expression fpf:expression->
  500. +$fpf -$fpf *$fpf fpf:operator-table fpf:operators-known
  501. ;;./scmutils/simplify/simplify.scm ; OK
  502. *inhibit-expt-simplify* make-analyzer
  503. default-simplifier expression-simplifier initializer
  504. priority-setter expression-analyzer
  505. auxiliary-variable-fetcher fpf:analyzer pcf:analyzer
  506. pcf:simplify rcf:analyzer rcf:simplify
  507. ;;./scmutils/simplify/split-poly.scm ; OK
  508. gcd-Dp split-polynomial actual-factors
  509. split-polynomial->expression factor-polynomial-expression
  510. pcf:->factors poly:factor-analyzer poly:factor
  511. root-out-squares
  512. ;;./scmutils/simplify/fbe2-syntax.scm
  513. ;;./scmutils/simplify/rule-syntax.scm ; OK
  514. rule:compile rule:pattern rule:predicate rule:skeleton
  515. rule:consequent pattern:compile pattern:vars
  516. match:element? match:segment?
  517. match:variable-name match:restricted? match:restriction
  518. match:reverse-segment? predicate:compile none skel:compile
  519. skel:constant? skel:element? skel:element-expression
  520. skel:segment? skel:segment-expression
  521. ;;./scmutils/simplify/matcher.scm ; OK
  522. match:predicate match:equal match:eqv
  523. match:element match:segment
  524. match:make-segment match:segment-beginning
  525. match:segment-end match:list
  526. match:reverse-segment datum=?
  527. match:bind match:lookup match:value match:->combinators
  528. ;;./scmutils/simplify/rule-simplifier.scm ; OK
  529. rule-simplifier try-rules
  530. rule:make match:extract-segment
  531. ;;./scmutils/simplify/rules.scm ; OK
  532. log-exp-simplify? sqrt-expt-simplify? sqrt-factor-simplify?
  533. aggressive-atan-simplify? inverse-simplify?
  534. sin-cos-simplify? half-angle-simplify? ignore-zero?
  535. commute-partials? divide-numbers-through-simplify?
  536. trig-product-to-sum-simplify? log-exp-simplify
  537. sqrt-expt-simplify sqrt-factor-simplify
  538. aggressive-atan-simplify inverse-simplify sin-cos-simplify
  539. half-angle-simplify ignore-zero-simplify
  540. commute-partials-simplify divide-numbers-through-simplify
  541. trig-product-to-sum-simplify negative-number?
  542. complex-number? imaginary-number? imaginary-integer?
  543. non-integer? even-integer? odd-integer? universal-reductions
  544. logexp magsimp
  545. miscsimp simsqrt non-negative-factors sqrt-expand sqrt-contract
  546. specfun->logexp logexp->specfun log-contract log-expand
  547. list< reals? canonicalize-partials trig->sincos sincos->trig triginv
  548. zero-mod-pi?
  549. pi/2-mod-2pi? -pi/2-mod-2pi? pi/2-mod-pi? zero-mod-2pi?
  550. pi-mod-2pi? pi/4-mod-pi? -pi/4-mod-pi? special-trig
  551. angular-parity exact-integer>3? expand-multiangle
  552. trig-sum-to-product trig-product-to-sum contract-expt-trig
  553. sin-half-angle-formula cos-half-angle-formula half-angle
  554. at-least-two? sin^2->cos^2 cos^2->sin^2
  555. sincos-flush-ones more-than-two? split-high-degree-cosines
  556. split-high-degree-sines flush-obvious-ones sincos-random
  557. sincos->exp1 sincos->exp2 exp->sincos exp-contract
  558. exp-expand complex-rules divide-numbers-through
  559. simplify-until-stable
  560. simplify-and-canonicalize simplify-and-flatten
  561. only-if ->poisson-form trigexpand
  562. trigcontract full-simplify oe-simplify easy-simplify
  563. clear-square-roots-of-perfect-squares new-simplify
  564. ;;./scmutils/simplify/default.scm ; OK
  565. default-simplify g:simplify simplify-units simplify-procedure
  566. simplify-abstract-function simplify-operator
  567. simplify-quaternion simplify-matrix simplify-differential
  568. simplify-down simplify-up simplify-literal-number
  569. ;;./scmutils/simplify/sparse.scm ; OK
  570. sparse-exponents sparse-coefficient sparse-term
  571. sparse-constant-term? sparse-univariate? sparse-constant?
  572. sparse-one-term? sparse-one? sparse-zero? sparse-zero-term?
  573. sparse-constant-term sparse-one sparse-identity-term
  574. sparse-linear sparse-term-> sparse:>exponents?
  575. sparse-normalize sparse-scale sparse-negate-term sparse-add
  576. sparse-multiply sparse-multiply-term sparse-abs
  577. sparse-divide sparse-divisible? fpf:->sparse
  578. sparse-evaluate sparse-evaluate> sparse-evaluate<
  579. sparse-combine-like-terms sparse-merge-adjacent-terms
  580. ;;./scmutils/simplify/sparse-interpolate.scm
  581. sparse-interpolate *interpolate-skeleton-using-vandermonde*
  582. interpolate-skeleton expand-poly univariate-interpolate
  583. univariate-interpolate-values *interpolate-size*
  584. interpolate-random
  585. ;;./scmutils/simplify/sparse-gcd.scm ; OK
  586. poly/gcd-sparse poly/gcd/sparse sparse-gcd
  587. *heuristic-sparse-gcd-enabled* sparse-gcd-wrapper
  588. sparse-monomial-gcd sparse-content
  589. *heuristic-sparse-gcd-trials* *heuristic-sparse-gcd-win*
  590. *heuristic-sparse-gcd-lose*
  591. *heuristic-sparse-gcd-bad-decision* sparse-heuristic-gcd
  592. sparse-multivariate-gcd *sgcd-restart-limit*
  593. *sgcd-stage-limit* *sgcd-wallp* *sgcd-tuning*
  594. sparse-multivariate-gcd-helper *interpolate-primes-stream*
  595. reset-interpolation-args! make-interpolation-args
  596. sparse-univariate-gcd *ugcd-wallp* *ugcd-testing*
  597. sparse-base-content sparse-univariate-primitive-part
  598. sparse-univariate-pseudo-remainder
  599. sparse-univariate-constant sparse-univariate-one sparse-univariate-scale
  600. sparse-univariate-normalize
  601. ;;./scmutils/simplify/pcf-fpf.scm
  602. poly:gcd-dispatch *gcd-cut-losses* poly/gcd-classical
  603. *euclid-breakpoint-arity* poly:gcd gcd-check-same-arity
  604. gcd-target-type poly->sparse sparse->poly fpf->pcf pcf->fpf
  605. pcf->sparse sparse->pcf
  606. ;;./scmutils/display/print.scm
  607. *divide-out-terms* *heuristic-numbers* canonicalize-numbers
  608. ham:simplify divide-out-terms-simplify eqn:simplify
  609. flush-derivative flush-literal-function-constructors
  610. *factoring* simplify careful-simplify *only-printing*
  611. *last-expression-printed* prepare-for-printing
  612. unsimplifiable? show-expression print-expression pe se
  613. print-expression-comment pec
  614. ;;./scmutils/display/fbe-exdisplay.scm
  615. internal-show-expression
  616. 2d-show-expression
  617. expression->tex-string
  618. display-tex-string
  619. last-tex-string-generated
  620. enable-tex-display
  621. ;;./scmutils/display/suppress-args.scm
  622. *suppressed-argument-list*
  623. *suppressed-argument-list-counter*
  624. suppress-arguments
  625. arg-suppressor
  626. ;;./scmutils/enclose/comcon.scm
  627. lambdafy make-bound-variables letify definify
  628. ;;./scmutils/enclose/fbe-magic.scm
  629. compile-procedure
  630. ;;./scmutils/enclose/fbe-jinx-cselim.scm
  631. text/cselim
  632. ;;./scmutils/enclose/enclose.scm
  633. lambda->numerical-procedure
  634. lambda->interpreted-generic-procedure
  635. abstract-to-function
  636. ;;./scmutils/numerics/signals/cph-dsp/flovec.scm
  637. flonum-vector->vector flonum-vector->list vector->flonum-vector
  638. list->flonum-vector flo:make-vector
  639. flo:make-initialized-vector flo:subvector flo:vector-grow
  640. flo:subvector-move! flo:vector-map flo:vector-map!
  641. flo:vector-for-each flo:subvector-for-each flo:vector-fill!
  642. flo:subvector-fill! ->flonum
  643. ;;./scmutils/numerics/quadrature/rational.scm
  644. extrapolate-function-to-zero build-tableau-f
  645. rational-function-interpolation build-tableau-lists
  646. sum-list-flo rational-interpolation zd-wallp? sigma-flo
  647. rat-square make-bs-intervals extrapolate-streams-to-zero
  648. build-tableau-streams *quadrature-neighborhood-width*
  649. from-neighborhood *INTEGRATE-N* integrate-closed-closed
  650. integrate-closed-closed-1 integrate-open-closed
  651. integrate-open-closed-1 integrate-closed-open
  652. integrate-closed-open-1 integrate-open-open
  653. integrate-open-open-1 integrate-open *roundoff-cutoff*
  654. integrate-roundoff-wallp? integrate-closed-finite
  655. integrate-open-finite trapezoid-stream rat-trapezoid
  656. trapezoid-using-previous-sum second-euler-maclaurin
  657. ;;./scmutils/numerics/quadrature/quadrature.scm ; OK
  658. :-infinity :+infinity *infinities* make-definite-integrator
  659. evaluate-definite-integral *improper-integral-breakpoint*
  660. evaluate-improper-integral bulirsch-stoer-quadrature
  661. ;;./scmutils/numerics/quadrature/defint.scm
  662. *compile-integrand? *definite-integral-allowable-error*
  663. definite-integral-with-tolerance definite-integral-numerical
  664. definite-integral choose-interior-point
  665. ;;./scmutils/numerics/extrapolate/re.scm ; OK
  666. make-zeno-sequence accelerate-zeno-sequence make-zeno-tableau
  667. first-terms-of-zeno-tableau richardson-sequence stream-limit
  668. richardson-limit ord-estimate-stream
  669. guess-integer-convergent guess-ord-inc-etc
  670. guess-ord-and-inc richardson-derivative richardson-second-derivative
  671. romberg-quadrature polynomial-extrapolation rational-extrapolation
  672. ;;./scmutils/numerics/optimize/unimin.scm ; OK
  673. extremal-arg extremal-value golden-section-min
  674. golden-section-max gsmin gsmax
  675. brent-min brent-max bracket-min
  676. bracket-max local-maxima local-minima
  677. estimate-global-max estimate-global-min
  678. ;;./scmutils/numerics/optimize/multimin.scm ; OK
  679. simplex-size simplex-vertex simplex-value simplex-entry
  680. simplex-highest simplex-but-highest simplex-next-highest
  681. simplex-lowest simplex-add-entry simplex-adjoin simplex-sort
  682. simplex-centroid
  683. extender make-simplex stationary? nelder-wallp? nelder-mead
  684. generate-gradient-procedure line-min-davidon
  685. line-min-brent
  686. fletcher-powell-wallp? fletcher-powell dfp dfp-brent
  687. bfgs-wallp? bfgs
  688. ;;./scmutils/numerics/optimize/optimize.scm ; OK
  689. minimize brent-error nelder-start-step nelder-epsilon nelder-maxiter
  690. multidimensional-minimize parameters->vector
  691. vector->parameters
  692. ;;./scmutils/numerics/linear/singular.scm
  693. barf-on-zero-pivot
  694. allow-zero-pivot
  695. singular-matrix-error
  696. with-singular-matrix-handler
  697. handle-singularity-errors-with
  698. ;;./scmutils/numerics/linear/full-pivot.scm
  699. full-pivot-solve-linear-system
  700. full-pivot-solve
  701. full-pivot-solve-internal
  702. full-pivot-find
  703. *minimum-allowable-full-pivot*
  704. ;;./scmutils/numerics/linear/gauss-jordan.scm
  705. gauss-jordan-solve-linear-system
  706. gauss-jordan-solve
  707. gauss-jordan-invert-and-solve
  708. *minimum-allowable-gj-pivot*
  709. destructive-gauss-jordan-solve-linear-system
  710. ;;./scmutils/numerics/linear/lu.scm ; OK
  711. lu-solve-linear-system lu-solve lu-determinant lu-invert
  712. lu-decompose lu-backsubstitute
  713. lu-solve-linear-system-internal lu-solve-internal
  714. lu-invert-internal lu-determinant-internal
  715. lu-decompose-internal tiny-pivot-bugger-factor bad-pivot?
  716. lu-find-best-pivot
  717. better-pivot? lu-upper-eqn lu-lower-eqn lu-row-swap
  718. lu-backsubstitute-internal lu-null-space
  719. lu-null-vector-internal heuristically-zero?
  720. heuristic-zero-vector? hilbert upper-matrix lower-matrix
  721. lower*upper checklu
  722. ;;./scmutils/numerics/linear/svd.scm
  723. svd svd-least-squares
  724. svd-solve-linear-system
  725. svd-invert
  726. ;;svd-internal
  727. ;;./scmutils/numerics/linear/vandermonde.scm
  728. solve-vandermonde-system
  729. solve-vandermonde-t-system
  730. solve-vandermonde-td-system
  731. roots->poly-value
  732. ;;./scmutils/numerics/linear/eigen.scm
  733. matrix->eigenvalues
  734. real-matrix->eigenvalues-eigenvectors
  735. matrix->eigenvalues-eigenvectors
  736. ;;./scmutils/numerics/ode/advance.scm ; OK
  737. advance-generator advance-wallp? min-step-size
  738. *independent-variable-tolerance* stream-of-states
  739. vector-fixed-point-with-failure
  740. *vector-fixed-point-iteration-loss*
  741. *vector-fixed-point-ridiculously-large*
  742. *fixed-point-wallpaper* vector-metric
  743. *norm-breakpoint* lp-norm max-norm parse-error-measure
  744. vector-clipper vector-padder J-dimension integrator-table
  745. add-integrator!
  746. ;;./scmutils/numerics/ode/qc.scm ; OK
  747. quality-control *qc-trigger-point*
  748. *qc-halfstep-reduction-factor* *qc-2halfsteps-reduction-factor*
  749. *qc-fullstep-reduction-factor* qc-wallp? qc-damping
  750. qc-zero-protect rk4 pc-wallp?
  751. c-trapezoid n-trapezoid
  752. ;;./scmutils/numerics/ode/bulirsch-stoer.scm ; OK
  753. for less-than
  754. *max-tableau-depth* *max-tableau-width*
  755. bulirsch-stoer-steps bulirsch-stoer-magic-vectors
  756. bulirsch-stoer-setup
  757. vector-Gragg
  758. lisptran-derivative->floating-lisptran-derivative
  759. error-measure->floating-error-measure
  760. bulirsch-stoer-lisptran bulirsch-stoer-floating-lisptran
  761. bulirsch-stoer-magic-multiplier bulirsch-stoer-magic-base
  762. bulirsch-stoer-error-wallp bulirsch-stoer-state-wallp
  763. system-derivative->lisptran-derivative
  764. lisptran-derivative->system-derivative
  765. ;;./scmutils/numerics/ode/be.scm ; OK
  766. c-euler
  767. ;;./scmutils/numerics/ode/gear.scm ; OK
  768. gear-advance-generator gear-stepper-generator
  769. gear-integrator
  770. update-table gear-predict-maker
  771. gear-solve-maker gear-control
  772. spice-expand spice-contract gear-wallp? *gear-max-order*
  773. *gear-min-order*
  774. *gear-dead-zone-low* *gear-dead-zone-high*
  775. *gear-error-too-big* *gear-step-refractory-period*
  776. *gear-order-refractory-period* *gear-decrease-order*
  777. *contract-order* *gear-damping* *gear-max-step-increase*
  778. *gear-protect* *gear-fixed-point-margin*
  779. *gear-fixed-point-failure-contraction* *spice-order-too-big*
  780. *spice-step-too-big* *spice-good-step*
  781. *spice-step-too-small* *spice-order-too-small*
  782. *spice-step-reduction* *spice-step-expansion* gc1 gc2 gc3
  783. gc4 gear-correctors gear-corrector-errors
  784. gear-error extrap1 lag1 extrap2 lag2 extrap3 lag3
  785. extrap4 lag4 extrap5 lag5
  786. lagrange-extrapolators
  787. ;;./scmutils/numerics/ode/ode-advancer.scm
  788. *ode-integration-method* *first-step-scale* *corrector-convergence-margin*
  789. *progress-monitor* ode-advancer set-ode-integration-method!
  790. advance-monitor final-step-monitor bs-advancer
  791. qcrk4-advancer qc-ctrap-advancer qc-ceuler-advancer
  792. gear-advancer gear?
  793. ;;./scmutils/numerics/ode/interface.scm ; OK
  794. evolve *time-tolerance*
  795. *default-advancer-tolerance* state-advancer
  796. advance-beyond free-run-state-advancer
  797. make-parametric-flat-sysder *compiling-sysder?
  798. *max-compiled-sysder-table-size*
  799. *compiled-sysder-table-size* *compiled-sysder-table*
  800. compile-parametric-memoized
  801. *compiler-simplifier* compile-parametric flush-column
  802. ;;./scmutils/numerics/statistics/cluster.scm
  803. cluster multiset-difference remove-one merge-2-clusters
  804. make-a-cluster cluster-elements cluster-diameter
  805. cluster-subclusters make-singleton-cluster set-separation
  806. ;;./scmutils/numerics/statistics/gauss.scm ; OK
  807. uniform-random nonzero-uniform-random
  808. gaussian-random-pair gaussian-random
  809. gaussian-random-list
  810. gaussian-random-pairs
  811. gaussian-random-tuples
  812. add-noise
  813. ;;./scmutils/numerics/statistics/moments.scm ; OK
  814. v:mean ;v:variance-helper
  815. v:variance v:sample-variance
  816. v:standard-deviation v:sample-standard-deviation
  817. v:average-deviation mean variance
  818. standard-deviation sample-variance sample-standard-deviation
  819. skewness kurtosis average-deviation running-mean
  820. ;;./scmutils/numerics/functions/bessel.scm
  821. 2/pi 3pi/4 round-to-even poly-by-coeffs->value
  822. bessj0 bessj1 bessj bessy0 bessy1 bessy bessh
  823. ;;;./scmutils/numerics/functions/elliptic.scm ; OK
  824. ;;Carlson-elliptic-1 Carlson-elliptic-1-simple Carlson-elliptic-2 ; internal
  825. elliptic-integral-F complete-elliptic-integral-K
  826. elliptic-integral-E complete-elliptic-integral-E
  827. elliptic-integrals first-elliptic-integral
  828. second-elliptic-integral first-elliptic-integral&derivative
  829. Jacobi-elliptic-functions
  830. ;;./scmutils/numerics/roots/bisect.scm ; OK
  831. bisect-2 bisect-fp *bisect-break* *bisect-wallp* bisect
  832. find-a-root search-for-roots
  833. ;;./scmutils/numerics/roots/zbrent.scm
  834. zbrent
  835. ;;./scmutils/numerics/roots/zeros.scm
  836. false-position-search
  837. newton-with-false-position-search
  838. ;;./scmutils/numerics/roots/newton-kahan.scm ; OK
  839. newton-search
  840. newton-kahan-search
  841. ;;./scmutils/numerics/roots/multidimensional.scm ; OK
  842. multidimensional-root
  843. ;;./scmutils/numerics/signals/cph-dsp/fft.scm ; OK
  844. flo:real-fft ;flo:real-fft!
  845. flo:real-inverse-fft ;flo:real-inverse-fft!
  846. flo:complex-fft ;flo:complex-fft!
  847. flo:complex-inverse-fft
  848. ;; flo:complex-inverse-fft! fix:ceiling-lg
  849. ;; flo:bit-reverse-vector! flo:inverse-fft-reverse!
  850. compute-wn-vectors
  851. ;; do-butterflies!
  852. fft-results->magnitude-squared! magnitude-squared->log-magnitude!
  853. fft-results->angle! fft-results->complex
  854. ;;./scmutils/numerics/signals/cph-dsp/white.scm
  855. make-noise-vector make-uniform-noise-vector
  856. make-gaussian-noise-vector:polar-method
  857. marsaglia-maclaren-method mm-algorithm-L mm-worst-case
  858. mm-tables mm-large-table mm-sj mm-pj mm-pj+3h mm-pj+6h
  859. mm-abj mm-dj mm-*pj mm-qj mm-fj+6h simpsons-rule
  860. one-sided-unit-gaussian-pdf-limits
  861. ;;./scmutils/poly/polyroot.scm ; OK
  862. leading-coefficient lowest-order trailing-coefficient
  863. identity-poly horners-rule-with-error complex-random
  864. horners-rule roots->poly poly->roots ensure-real
  865. bring-to-real rescale-poly-roots obviously-complex?
  866. clean-up-root deflate-poly identify-multiple-roots
  867. expand-multiplicities root-searcher root-polisher
  868. poly-newton-method poly-laguerre-method
  869. root-wallp minimum-magnitude
  870. obviousity-factor imaginary-part-tolerance on-axis-tolerance
  871. rationalization-tolerance
  872. max-scale clustering minimum-denominator *kahan-threshold*
  873. root-searcher-method root-searcher-x0 root-searcher-max-iter
  874. root-searcher-max-shrink root-searcher-jiggle
  875. root-searcher-shrink-factor root-searcher-value-to-noise
  876. root-searcher-minimum-progress root-polisher-method
  877. root-polisher-value-to-noise root-polisher-minimum-progress
  878. ;;./scmutils/poly/interp.scm ; OK
  879. lagrange-interpolation-function
  880. ;;./scmutils/poly/polyinterp.scm ; OK
  881. poly-domain->canonical poly-domain->general make-interp-poly
  882. get-poly-and-errors polynomial-function
  883. ;;./scmutils/poly/legendre.scm
  884. legendre-polynomial
  885. ;;./scmutils/poly/hermite.scm ; OK
  886. make-cubic-interpolant
  887. make-quintic-interpolant
  888. make-hermite-interpolator
  889. ;;./scmutils/poly/nchebpoly.scm ; OK
  890. add-lists scale-list chebyshev-polynomial
  891. scaled-chebyshev-expansions chebyshev-expansions
  892. poly->cheb-exp
  893. cheb-exp->poly trim-cheb-exp cheb-econ cheb-root-list
  894. first-n-cheb-values cheb-exp-value generate-cheb-exp
  895. generate-approx-poly
  896. ;;./scmutils/poly/ppa.scm ;OK
  897. make-ppa ppa-value ppa-memo make-smooth-ppa
  898. smooth-ppa-memo ppa-make-from-poly ppa-adjoin ppa-low-bound
  899. ppa-high-bound ppa-body ppa-terminal? ppa-poly ppa-split?
  900. ppa-split ppa-low-side ppa-high-side
  901. ;;./scmutils/kernel/litfun.scm
  902. Real X UP DOWN ^ starify X* UP* DOWN* -> Any
  903. default-function-type permissive-function-type Lagrangian
  904. Hamiltonian type->domain type->range-type type->domain-types
  905. type->arity length->exact-arity type-expression->predicate
  906. all-satisfied type-expression->type-tag df-range-type
  907. f:domain-types f:range-type *literal-reconstruction*
  908. f:expression typed-function literal-function?
  909. literal-function litfun literal-apply litderiv make-partials
  910. ;;fd
  911. ;;./scmutils/solve/solve.scm ; OK
  912. solve-simplifier residual-equations residual-variables
  913. substitutions hopeless-variables solve-incremental
  914. fewer-variables? flush-tautologies next-equations
  915. next-substitutions isolate-var occurs? isolatable?
  916. positive-power? var-in-product var-in-sum
  917. backsubstitute-substitution backsubstitute-equation
  918. substs->equations subst->equation apply-substitutions
  919. apply-substitutions-to-equation make-substitution
  920. substitution-variable substitution-expression
  921. substitution-justifications make-equation
  922. equation-expression equation-justifications
  923. equation-variables *solve:contradiction-wallp*
  924. contradictory-eqn? eqn-contradiction? *zero-threshold*
  925. differential-operator? D? Dn? standardize-equation
  926. simple-solve
  927. ;;./scmutils/units/units.scm
  928. &unitless unitless? the-empty-vector make-unit unit-system
  929. unit-exponents unit-scale same-dimensions? same-units?
  930. <-units? <=-units? >-units? >=-units? *units invert-units
  931. /units expt-units
  932. ;;./scmutils/units/fbe-system.scm ; OK
  933. define-unit-system
  934. unit-system? unit-system-name base-units derived-units alternate-units
  935. define-derived-unit define-derived-unit!
  936. define-additional-unit define-additional-unit!
  937. *multiplier-names* define-multiplier
  938. *numerical-constants* define-constant
  939. ;; numerical-constants symbolic-constants
  940. get-constant-data &
  941. *unit-constructor* express-in-given-units
  942. with-units->expression make-unit-description
  943. find-unit-description find-unit-name unit-expresson
  944. ;;./scmutils/units/with-units.scm
  945. *permissive-units* without-units? unitless-quantity? u:arity
  946. u:value u:units units:= angular? with-units has-units?
  947. u:type u:zero-like u:one-like u:zero? u:one? u:= u:< u:<=
  948. u:> u:>= u:negate u:invert u:sqrt u:sin u:cos u:exp u:+ u:-
  949. u:* u:/ u:*u u:u* u:t*u u:u*t u:/u u:u/ u:t/u u:u/t u:expt
  950. u:make-rectangular u:make-polar u:real-part u:imag-part
  951. u:magnitude u:angle u:conjugate u:atan2 non-unit?
  952. ;;./scmutils/units/fbe-SI-units.scm ; OK
  953. SI
  954. &meter &kilogram &second &ampere &kelvin &mole &candela
  955. &angular &radian &steradian &newton &joule &coulomb &watt
  956. &volt &ohm &siemens &farad &weber &henry &hertz &tesla &pascal
  957. &exa &peta &tera &giga &mega &kilo &hecto &deka &deci &centi
  958. &milli &micro &nano &pico &femto &atto
  959. &E &P &T &G &M &k &h &da &d &c &m &u &n &p &f &a
  960. &lumen &lux &katal &becquerel &gray &sievert &degree &gram &inch
  961. &centimeter &pound &slug &foot &mile &dyne &calorie &minute
  962. &hour &day &year &sidereal-year &AU &arcsec &pc &ly &esu &ev
  963. ;;./scmutils/units/fbe2-constants.scm ;OK
  964. :gamma :c :G :e :h :N_A :m_e :m_p :m_n :m_u :mu_e :mu_p :gamma_p
  965. :R_H :R :k :h-bar :F :mu_0 :epsilon_0 :Z0 :alpha :R_infinity
  966. :r_e :lambda_C :a_0 :Phi_0 :h/2m_e :e/m_e :mu_B :mu_e/mu_B
  967. :mu_N :sigma :sigma_T background-temperature water-freezing-temperature
  968. room-temperature water-boiling-temperature earth-orbital-velocity
  969. earth-mass earth-radius earth-surface-area earth-escape-velocity
  970. earth-gravitational-acceleration :g earth-mean-density
  971. earth-incident-sunlight vol@stp sound-speed@stp pressure@stp
  972. earth-surface-temperature sun-mass :m_sun sun-radius :r_sun
  973. sun-luminosity :l_sun sun-surface-temperature sun-rotation-period
  974. GMsun
  975. ;;./scmutils/calculus/fbe-coord.scm ; OK
  976. define-coordinates using-coordinates
  977. ;;./scmutils/calculus/frame-maker.scm ;OK
  978. frame-maker
  979. event->coords coords->event ancestor-frame
  980. make-event event?
  981. frame-owner claim! frame-params frame-name
  982. ;;;./scmutils/mechanics/sections.scm ; OK
  983. ;;explore-map default-monitor ; require 'plot-point'
  984. default-collector
  985. ;;pointer-coordinates display-map; require graphics capabilities
  986. iterated-map standard-map
  987. standard-map-inverse flo:pv
  988. )
  989. (import (except (rnrs base) error assert)
  990. (prefix (only (rnrs base) error) rnrs:)
  991. (rename (only (rnrs base) string<?) (string<? string:<?))
  992. (rnrs eval)
  993. (rnrs mutable-pairs)
  994. (rnrs io simple)
  995. (rnrs io ports)
  996. (rnrs r5rs)
  997. (rnrs conditions)
  998. (rnrs control)
  999. (rnrs syntax-case)
  1000. (rename (except (rnrs lists) filter) (remq delq) (remv delv))
  1001. (except (mit core) assert) ; assert is defined in general/logic-utils.scm
  1002. (mit arithmetic)
  1003. (mit list)
  1004. (except (mit vector) flo:subvector) ; flo:subvector in
  1005. ; numerics/signal/cph-dsp/flovec.scm
  1006. (mit curry)
  1007. (except (mit arity) procedure-arity) ; use version in apply-hook
  1008. (mit apply-hook)
  1009. (mit hash-tables)
  1010. (mit environment)
  1011. (mit streams)
  1012. (only (srfi :1) reduce delete any every lset-adjoin make-list append-map)
  1013. (srfi :9)
  1014. (srfi :14) ; char-set
  1015. (rename (srfi :41) (stream-cons cons-stream)
  1016. (stream-fold stream-accumulate))
  1017. (only (chezscheme) include import compile module eval-when
  1018. last-pair environment? scheme-environment
  1019. copy-environment interaction-environment
  1020. make-parameter parameterize
  1021. iota reverse! list-head random
  1022. waiter-write console-output-port with-output-to-string
  1023. void vector-copy))
  1024. (define scmutils-base-environment (environment '(scmutils base)))
  1025. ;; used, e.g., in 'enclose/enclose.scm' by 'lambda->numerical-procedure'
  1026. (define numerical-environment (environment '(rnrs) '(scmutils base)))
  1027. (define generic-environment (environment '(scmutils generic)
  1028. '(scmutils mechanics)
  1029. '(scmutils calculus)))
  1030. (define user-generic-environment #f)
  1031. (define *unparser-list-depth-limit* #f)
  1032. (define *unparser-list-breadth-limit* #f)
  1033. (define derivative-symbol (string->symbol "D"))
  1034. ;;; **** general **********************************
  1035. (include "./scmutils/general/weak.scm")
  1036. (include "./scmutils/general/memoize.scm")
  1037. (include "./scmutils/general/hashcons.scm")
  1038. (include "./scmutils/general/resource-limit.scm")
  1039. (include "./scmutils/general/stack-queue.scm")
  1040. ;;(include "./scmutils/general/ambsch.scm")
  1041. (include "./scmutils/general/logic-utils.scm")
  1042. (include "./scmutils/general/list-utils.scm")
  1043. (include "./scmutils/general/table.scm")
  1044. (include "./scmutils/general/sets.scm")
  1045. (include "./scmutils/general/permute.scm")
  1046. ;;(include "./scmutils/general/line-prefix.scm")
  1047. (include "./scmutils/general/eq-properties.scm")
  1048. (include "./scmutils/general/gjs-cselim.scm")
  1049. ;;; **** kernel **********************************
  1050. (define +pi (* 4 (atan 1 1)))
  1051. (define +2pi (* 2 +pi))
  1052. (include "./scmutils/kernel/numeric.scm")
  1053. (include "./scmutils/kernel/utils.scm")
  1054. (include "./scmutils/kernel/iterat.scm")
  1055. (include "./scmutils/kernel/express.scm")
  1056. (include "./scmutils/kernel/ghelper.scm")
  1057. (include "./scmutils/kernel/generic.scm")
  1058. (include "./scmutils/kernel/mathutil.scm")
  1059. (include "./scmutils/kernel/strutl.scm")
  1060. (include "./scmutils/kernel/fbe-extapply.scm")
  1061. (include "./scmutils/kernel/types.scm")
  1062. (define (diff-memoize-1arg f) f)
  1063. (define (diff-memoize-2arg f) f)
  1064. (define (diff-memoize f) f)
  1065. ;;;(define (diff-memoize-1arg f) (linear-memoize-1arg f))
  1066. ;;;(define (diff-memoize-2arg f) (linear-memoize f))
  1067. ;;;(define (diff-memoize f) (linear-memoize f))
  1068. ;;;(define (diff-memoize f) (hash-memoize f))
  1069. (include "./scmutils/kernel/modarith.scm")
  1070. (include "./scmutils/kernel/diff.scm")
  1071. (include "./scmutils/kernel/deriv.scm")
  1072. (include "./scmutils/kernel/operator.scm")
  1073. (include "./scmutils/kernel/function.scm")
  1074. ;; references symbolic-environment
  1075. (include "./scmutils/kernel/numbers.scm")
  1076. (include "./scmutils/kernel/vectors.scm")
  1077. (include "./scmutils/kernel/structs.scm")
  1078. (include "./scmutils/kernel/matrices.scm")
  1079. (include "./scmutils/kernel/quaternion.scm")
  1080. (include "./scmutils/kernel/pseries.scm")
  1081. (include "./scmutils/kernel/numsymb.scm")
  1082. (include "./scmutils/kernel/heuristic.scm")
  1083. (include "./scmutils/kernel/fbe-genenv.scm")
  1084. (include "./scmutils/kernel/custom-repl.scm")
  1085. ;;;; **** Simplifier loader **********************************
  1086. ;;; Canonical simplifiers are based on Rational Canonical Form,
  1087. ;;; which is, in turn, based on Polynomial Canonical Form.
  1088. ;;;The following two files must be loaded in the given order.
  1089. (include "./scmutils/simplify/pcf.scm")
  1090. (include "./scmutils/simplify/rcf.scm")
  1091. ;;; We need flattened polynomials to support rule-based simplifiers.
  1092. (include "./scmutils/simplify/fpf.scm")
  1093. ;;; Canonical simplifiers are glued together with SIMPLIFY.
  1094. (include "./scmutils/simplify/simplify.scm")
  1095. (include "./scmutils/simplify/split-poly.scm")
  1096. ;;; Rule-based simplifiers
  1097. ;;; FBE: Instead of the 'symbolic-environment' we create the
  1098. ;;; 'symbolic-module'. To reproduce the 'rule-environment' in
  1099. ;;; 'syntax.scm' we work in the 'scmutils-base-environment' and import
  1100. ;;; 'symbolic-module'.
  1101. ;;(define rule-environment symbolic-environment)
  1102. (define (rule-memoize f) f)
  1103. ;;; (define (rule-memoize f) (linear-memoize-1arg f))
  1104. ;;; (define (rule-memoize f) (linear-memoize f))
  1105. ;;; (define (rule-memoize f) (hash-memoize f))
  1106. ;;; (define (rule-memoize f) (hash-memoize-1arg f))
  1107. ;;(include "syntax" scmutils-base-environment)
  1108. (include "./scmutils/simplify/fbe-syntax.scm")
  1109. (include "./scmutils/simplify/rule-syntax.scm")
  1110. (include "./scmutils/simplify/matcher.scm")
  1111. (include "./scmutils/simplify/rule-simplifier.scm")
  1112. ;;; FBE: tried to make this a module, but can't make it work. Try
  1113. ;;; loading it directly into 'scmutils-base-environment'.
  1114. ;;(load "rules" rule-environment)
  1115. (include "./scmutils/simplify/rules.scm")
  1116. #;
  1117. (define (default-simplify exp)
  1118. (new-simplify (expression exp)))
  1119. (include "./scmutils/simplify/default.scm")
  1120. (include "./scmutils/simplify/sparse.scm")
  1121. (include "./scmutils/simplify/sparse-interpolate.scm")
  1122. (include "./scmutils/simplify/sparse-gcd.scm")
  1123. (include "./scmutils/simplify/pcf-fpf.scm")
  1124. (define symbolic-operators
  1125. (hash-table/key-list symbolic-operator-table))
  1126. ;; ;;;; **** Display **********************************
  1127. (include "./scmutils/display/print.scm")
  1128. (include "./scmutils/display/fbe-exdisplay.scm")
  1129. (include "./scmutils/display/suppress-args.scm")
  1130. ;;;; **** Enclose **********************************
  1131. (include "./scmutils/enclose/comcon.scm")
  1132. (include "./scmutils/enclose/fbe-magic.scm")
  1133. ;;; FBE: uses structures.
  1134. ;; (include "./scmutils/enclose/jinx-utils.scm")
  1135. ;; (include "./scmutils/enclose/jinx-cselim.scm")
  1136. (include "./scmutils/enclose/fbe-jinx-cselim.scm")
  1137. (include "./scmutils/enclose/enclose.scm")
  1138. ;;(include "opaque" scmutils-base-environment)
  1139. ;;;; **** Numerics **********************************
  1140. ;;; signals/cph-dsp
  1141. (include "./scmutils/numerics/signals/cph-dsp/flovec.scm")
  1142. ;; ;;; quadrature
  1143. (include "./scmutils/numerics/quadrature/rational.scm")
  1144. (include "./scmutils/numerics/quadrature/quadrature.scm")
  1145. (include "./scmutils/numerics/quadrature/defint.scm")
  1146. ;;; extrapolate
  1147. (include "./scmutils/numerics/extrapolate/re.scm") ; fundamental
  1148. ;;; optimize
  1149. (include "./scmutils/numerics/optimize/unimin.scm") ; fundamental
  1150. (include "./scmutils/numerics/optimize/multimin.scm") ; fundamental
  1151. (include "./scmutils/numerics/optimize/optimize.scm") ; fundamental
  1152. ;;; linear
  1153. (include "./scmutils/numerics/linear/singular.scm") ; fundamental
  1154. (include "./scmutils/numerics/linear/full-pivot.scm") ; fundamental
  1155. (include "./scmutils/numerics/linear/gauss-jordan.scm") ; fundamental
  1156. (include "./scmutils/numerics/linear/lu.scm") ; fundamental
  1157. (include "./scmutils/numerics/linear/svd.scm") ; fundamental
  1158. (include "./scmutils/numerics/linear/vandermonde.scm") ; fundamental
  1159. (include "./scmutils/numerics/linear/eigen.scm") ; fundamental
  1160. ;;; ode
  1161. (include "./scmutils/numerics/ode/advance.scm")
  1162. (include "./scmutils/numerics/ode/qc.scm")
  1163. (include "./scmutils/numerics/ode/bulirsch-stoer.scm")
  1164. (include "./scmutils/numerics/ode/be.scm")
  1165. (include "./scmutils/numerics/ode/gear.scm")
  1166. (include "./scmutils/numerics/ode/ode-advancer.scm")
  1167. (include "./scmutils/numerics/ode/interface.scm")
  1168. ;;; statistics
  1169. (include "./scmutils/numerics/statistics/cluster.scm") ; fundamental
  1170. (include "./scmutils/numerics/statistics/gauss.scm") ; fundamental
  1171. (include "./scmutils/numerics/statistics/moments.scm") ; fundamental
  1172. ;;; functions
  1173. (include "./scmutils/numerics/functions/bessel.scm")
  1174. (include "./scmutils/numerics/functions/elliptic.scm")
  1175. ;;; roots
  1176. (include "./scmutils/numerics/roots/bisect.scm")
  1177. (include "./scmutils/numerics/roots/zbrent.scm")
  1178. (include "./scmutils/numerics/roots/zeros.scm")
  1179. (include "./scmutils/numerics/roots/newton-kahan.scm")
  1180. (include "./scmutils/numerics/roots/multidimensional.scm")
  1181. ;; ;;; signals/cph-dsp (rest)
  1182. ;;; These are loaded in user-initial-environment
  1183. ;; (include "./scmutils/numerics/signals/cph-dsp/mathutil.scm")
  1184. (include "./scmutils/numerics/signals/cph-dsp/fft.scm")
  1185. (include "./scmutils/numerics/signals/cph-dsp/white.scm")
  1186. ;;;; **** Poly **********************************
  1187. ;;; Hairy polynomial rootfinder. Not so good, but I tried (GJS)
  1188. (include "./scmutils/poly/polyroot.scm")
  1189. ;;; The Polynomial Interpolator: generic code.
  1190. ;;; export = (Lagrange-interpolation-function ys xs)
  1191. ;; (parameterize ((case-sensitive #t))
  1192. ;; ;;with-case-preserved
  1193. ;; (lambda ()
  1194. ;; (load* "interp-generic" generic-environment)))
  1195. ;;; A compiled Polynomial Interpolator: fast numerical code.
  1196. ;;; export = (lagrange-interpolation-function ys xs)
  1197. (include "./scmutils/poly/interp.scm")
  1198. ;;; Halfant stuff
  1199. ;;; Elegant constructor of custom Lagrange interpolator procedures
  1200. ;; FBE: In '(scmutils generic)
  1201. ;; (include "lagrange" generic-environment)
  1202. ;;; Actual polynomial codes (requires pcf)
  1203. ;;; Shifts and scales polynomial domains,
  1204. ;;; makes interpolation polynomials, estimates errors.
  1205. (include "./scmutils/poly/polyinterp.scm")
  1206. ;;; Legendre polynomials
  1207. (include "./scmutils/poly/legendre.scm")
  1208. ;;; Hermite interpolators (splines)
  1209. (include "./scmutils/poly/hermite.scm")
  1210. ;;; Chebyshev expansions, economization
  1211. (include "./scmutils/poly/nchebpoly.scm")
  1212. ;;; Piecewise polynomial approximations; good function memoizers
  1213. (include "./scmutils/poly/ppa.scm")
  1214. ;;;; **************************************
  1215. ;;(start-preserving-case!)
  1216. ;;;; **************************************
  1217. (include "./scmutils/kernel/litfun.scm")
  1218. ;;;; **** Solve **********************************
  1219. (include "./scmutils/solve/solve.scm")
  1220. ;; ;;;; **** Units **********************************
  1221. (include "./scmutils/units/units.scm")
  1222. ;;(include "./scmutils/units/system.scm")
  1223. (include "./scmutils/units/fbe-system.scm")
  1224. (include "./scmutils/units/with-units.scm")
  1225. ;;(include "SI-units" generic-environment)
  1226. (include "./scmutils/units/fbe-SI-units.scm")
  1227. ;; (include "hms-dms-radians" generic-environment)
  1228. ;; (include "convert.scm" generic-environment)
  1229. ;;; For display/print
  1230. (define with-si-units->expression
  1231. (lambda (x)
  1232. (with-units->expression SI x)))
  1233. ;;; In mechanics loader (load "constants" generic-environment)
  1234. ;; FBE: I load it here in scmutils-base-environment
  1235. ;;; FBE: some constants like ':pi' are already defined and needed
  1236. ;;; before this point -> commented out
  1237. (include "./scmutils/units/fbe-constants.scm") ; FBE
  1238. ;;;; **************************************
  1239. (include "./scmutils/calculus/fbe-coord.scm")
  1240. (include "./scmutils/calculus/frame-maker.scm")
  1241. ;;; FBE: Instead of creating 'symbolic-environment' we create the module
  1242. ;;; 'symbolic-module' which we use in 'fbe-syntax'.
  1243. ;;(include "symbenv" scmutils-base-environment)
  1244. (include "./scmutils/simplify/fbe-symbenv.scm")
  1245. ;; ;; a couple of functions in 'scmutils-base-environment' which refer to
  1246. ;; ;; the 'generic-environment'.
  1247. ;; (include "./scmutils/units/system-generic-env.scm")
  1248. ;; ;;;; **** Mechanics **********************************
  1249. (include "./scmutils/mechanics/sections.scm")
  1250. ;;;; **** Initialize library ************************************************
  1251. (*scmutils/repl-simplifier* simplify)
  1252. ;;(start-scmutils-print!)
  1253. )