jtransforms
This is the Aussom-Lang JTransforms module. It wraps JTransforms 3.1 — a pure-Java multi-threaded library by Piotr Wendykier — to give Aussom programs fast numerical transforms on real and complex data.
Four transform families are supported, each available in 1D, 2D, and 3D variants in both double and single precision:
- FFT — Fast Fourier Transform (frequency analysis of signals)
- DCT — Discrete Cosine Transform (image and audio compression)
- DST — Discrete Sine Transform (signal processing)
- DHT — Discrete Hartley Transform (real-only alternative to FFT)
The underlying JTransforms library is BSD 2-Clause licensed and runs on Linux, Windows, and MacOS with no native dependencies.
Usage
Include the transform family you need at the top of your Aussom program. The loader runs once and pulls the JAR onto the classpath:
include jtransforms.fft;
// Forward FFT of a real length-8 signal
fft = new DoubleFFT_1D(8);
data = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0];
out = fft.realForward(data);
// Inverse round-trips when Scale = true
back = fft.realInverse(out, true);
Other domains follow the same pattern: jtransforms.dct,
jtransforms.dst, jtransforms.dht, jtransforms.large_array,
and jtransforms.utils.
License
Copyright 2026 Austin Lehman
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.