Sam Ritchie
Sam Ritchie
The original scheme: ```scm (define (max? exp) (and (pair? exp) (eq? (car exp) 'max))) (define (symb:max . l) (if (for-all? l number?) (apply max l) `(max ,@l))) (addto-symbolic-operator-table 'max symb:max)...
In scmutils, there is a dynamic toggle you can use to prevent the close-to-certain-value sin simplifications: ```scm (define heuristic-sin-cos-simplify true) ``` This should be added to each `almost-integral?` check that...
There are some functions that figure out `ulp`; this is the preferred way of comparing floats for the [same](https://github.com/microsoft/same-ish) library we use for approximate comparison. I don't grok this yet!...
This is an idea from scmutils that is not actually used there. The idea is to add metadata to `Literal` instances that states more specific claims we know about those...
```scm ;;; From Hamming, gives roots of quadratic without bad roundoff. ;;; a*x^2 + b*x + c = 0 (define (quadratic a b c ;; continuations for each case two-roots...
```scm ;;; From Numerical Recipes... for real coefficients ;;; x^3 + a*x^2 + b*x + c = 0 (define (cubic a b c cont) (let ((q (/ (- (square a)...
NOTE: Please also These live in the kernel of scmutils. Find these by looking for `enable-constructor-simplifications?` and seeing which branch that gives. This is ON by default in scmutils, so...
This function checks if the access-chain terminates in another structure or a final symbolic thing. Stare at this more to understand what it is doing... the `args` list is a...
We need to: - [ ] Bind `(sicmutils.structure/orientation->separator :sicmutils.structure/up)` to some easier variable and expose it - [ ] Make a function like `(raise-sym 'x 3)` that will generate `x↑3`...
These three are obviously missing generics; the implementations are not necessarily obvious!