Daniel Schultz

Writing

Notes on Modular Forms These are my notes from a seminar on modular forms taught at PSU.

Cubic Modular Equations in Two Variables The following equation of degree nine is solvable in radicals. \[x^9 - 3 x^8 + 4 t x^6 - 6 s x^5 - 6 s x^4 + 4 s t x^3 - 3 s^2 x + s^2 = 0\]

Trager's Algorithm for Integration Revisited If you are interested in a complete algorithm for integrating algebraic functions, these notes are for you.

Computing hypergeometric functions This discusses various ways of calculating the generalized hypergeometric function to high precision for unrestricted values of the main argument. This includes discussions of the difficult cases such as calculating in high precision the example \[\,_3 F_2(1/6,1/5,1/4; 1/3,1/2 | 1) = 1.26534412349446990...\] and the example of how oscillatory asymptotic formulas such as \[\,_0 F_2(1/3,1/2 | -x^3) \approx \frac{\Gamma(1/3)}{\sqrt{3 \pi }} e^{3 x/2} x^{1/6}\cos \left(\frac{\pi }{18} + \frac{3 \sqrt{3}x}{2}\right), \quad x \to \infty\] can be modified to gain results in unlimited precision for almost all \(x\).

Algorithms for multivariate polynomials The result of a large project for the OpenDreamKit put multivariate polynomials into FLINT. These are my notes on this implementation.

Integer multiplication via Floating Point aka How to thoroughly beat GMP on modern processors at integer multiplication past sizes of a couple thousand bits.

Matching Mathematica Patterns This is my implementation of the pattern matching core of Mathematica. Of interest here is that, for a given natural number n, the snippet

    s = ReplaceList[ConstantArray[Pi, n], {x__..} :> {x}];
    Assert[Union[Length/@s] === Divisors[n]];
runs in polynomial time, while WRI's implementation appears to have exponential running time.

Mandelbrot Notes

Software

castle Implementation of Mathematica's core. Instead of implementing a function for querying the current wind direction, this project does the core of the language including some fundamental algebraic operations. The control flow in this implementation is exceptional. Includes several C++ rants.

OSCAR This is a computer algebra system based on julia which I supported along with its ancillary packages AbstractAlgebra.jl, Nemo.jl, and Singular.jl.

I have made many two-dimensional and three-dimensional fractal videos. These used to be on my youtube channel. My process involved using my own programs in pure fasm for the calculations and ffmpeg for the final encoding. Although the most popular video from my channel was two-dimensional, I believe the three-dimensional fractals to be more technically and visually impressive.

This video uses Oren–Nayar shading, which gives the fractal surface the appearance of molded concrete. The global illumination is not faked, but rather, in true Monte–Carlo style, uses 128 rays per output pixel. This bumps the rendering time from seconds per frame to minutes per frame.