scheme
FindMinimaxPolynomial.jl | scheme | |
---|---|---|
3 | 5 | |
- | 165 | |
- | - | |
- | 1.5 | |
- | about 1 year ago | |
WebAssembly | ||
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
FindMinimaxPolynomial.jl
-
Finding the best sine function for Nintendo 64
> This polynomial is not derived analytically, rather it's found using an iterative algorithm, traditionally using the Remez algorithm, but also see my WIP project here: https://gitlab.com/nsajko/FindMinimaxPolynomial.jl.
Is this your independent attempt? Because I think RLIBM did the essentially same thing recently [1].
[1] https://arxiv.org/pdf/2104.04043.pdf
-
Implementing Cosine in C from Scratch
Seems worth noting that although the usual algorithm for finding the minimax polynomial is the very old Remez algorithm, I'm playing with a minimax finder that relies on what I think is a novel algorithm. My algorithm seems better than Remez, and certainly beats it in many cases, even though I don't have an analysis of the algorithm.
The main idea is to use linear programming with some chosen points from the interval to look for the polynomial that approximates the chosen function over that interval. Unlike Remez, this enables control over which individual point from the interval are chosen as representatives, which enables avoiding ill-behaved points. An example of where this leads to improvements over Remez is when optimizing relative error: Remez would trip over zeros of the function, because they cause singularities in the relative error, however my algorithm works (by avoiding ill-behaved points) as long as the discontinuities are removable.
My algorithm is also a lot more flexible than Remez', for example it allows optimizing over multiple intervals instead of a single one.
The Git repo of the (still in-progress) project is here: https://gitlab.com/nsajko/FindMinimaxPolynomial.jl
The Julia package is already registered (installable from the official Julia registry): https://juliahub.com/ui/Packages/FindMinimaxPolynomial/kNIo8...
scheme
-
Implementing Cosine in C from Scratch
I went through the same exercise implementing trig functions for scheme in webassembly...
It was a rabbit hole for sure
https://github.com/PollRobots/scheme/blob/main/scheme.wasm/s...
- Ask HN: What piece of code/codebase blew your mind when you saw it?
- PollRobots/scheme: An R7RS Scheme implemented in WebAssembly
-
I've been working on an r7rs scheme implemented in WebAssembly
The repo is at https://github.com/pollrobots/scheme
- Show HN: A an R7RS Scheme Implementation in WebAssembly
What are some alternatives?
sectorc - A C Compiler that fits in the 512 byte boot sector of an x86 machine
pygments - Pygments is a generic syntax highlighter written in Python
AvxMath
sse_mathfun - an extended version of Julien Pommier's sse_mathfun
Quake-2 - Quake 2 GPL Source Release
LIPS - Scheme based powerful lisp interpreter in JavaScript
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
mal - mal - Make a Lisp
Idris2 - A purely functional programming language with first class types
lisp-in-life - A Lisp interpreter implemented in Conway's Game of Life