dsp_equations/
dsp_equations.rs1use term_maths::render;
2
3fn main() {
4 let equations = [
5 (
7 r"X[k] = \sum_{n=0}^{N-1} x[n] \cdot e^{-j \frac{2\pi}{N} kn}",
8 "DFT Summation",
9 ),
10 (
12 r"(f * g)(t) = \int_{-\infty}^{\infty} f(\tau) g(t - \tau) \, d\tau",
13 "Convolution Integral",
14 ),
15 (
17 r"H(z) = \frac{b_0 + b_1 z^{-1} + b_2 z^{-2}}{1 + a_1 z^{-1} + a_2 z^{-2}}",
18 "Transfer Function",
19 ),
20 (
22 r"w(n) = 0.5 \left(1 - \cos\left(\frac{2\pi n}{N - 1}\right)\right)",
23 "Hann Window",
24 ),
25 ];
26
27 for (latex, label) in &equations {
28 println!("=== {} ===", label);
29 println!("LaTeX: {}", latex);
30 println!();
31 println!("{}", render(latex));
32 println!();
33 }
34
35 println!("=== Standalone tests ===\n");
37
38 println!("--- Sum with limits ---");
39 println!("{}\n", render(r"\sum_{n=0}^{N-1}"));
40
41 println!("--- Integral with limits ---");
42 println!("{}\n", render(r"\int_{0}^{1}"));
43
44 println!("--- Product with limits ---");
45 println!("{}\n", render(r"\prod_{i=1}^{n}"));
46
47 println!("--- Delimited fraction ---");
48 println!("{}\n", render(r"\left(\frac{a}{b}\right)"));
49
50 println!("--- Overline ---");
51 println!("{}\n", render(r"\overline{x + y}"));
52
53 println!("--- Hat ---");
54 println!("{}\n", render(r"\hat{x}"));
55
56 println!("--- Sqrt of fraction ---");
57 println!("{}\n", render(r"\sqrt{\frac{a}{b}}"));
58}