|
2 | 2 |
|
3 | 3 | ## Project Overview |
4 | 4 |
|
5 | | -**Julia scientific computing project** using DrWatson for reproducibility. Implements mathematical foundations (algebra, geometry, trigonometry) with visualization, comprehensive testing, and cross-repository documentation deployment. |
| 5 | +**Julia basic maths project** using DrWatson for reproducibility. Implements mathematical foundations (algebra, geometry, trigonometry) with visualization, comprehensive testing, and cross-repository documentation deployment. |
6 | 6 |
|
7 | 7 | ### Core Architecture |
8 | 8 |
|
|
19 | 19 | All code uses `@reexport` pattern and exports both computational + plotting functions: |
20 | 20 |
|
21 | 21 | ```julia |
22 | | -# src/Math_Foundations.jl |
| 22 | +# Main module uses @reexport for clean interface |
23 | 23 | using Reexport |
24 | 24 | @reexport using Symbolics, Nemo, Plots, Latexify, LaTeXStrings, Dates, AMRVW, Polynomials |
25 | 25 |
|
26 | | -# Export computational functions (no plotting) |
| 26 | +# Comprehensive exports for all functions |
| 27 | +# Pure computational functions (no plotting dependencies) |
27 | 28 | export calculate_parabola_roots_quadratic, calculate_parabola_roots_polynomial, calculate_parabola_roots_amrvw |
28 | 29 |
|
29 | | -# Export integrated plotting functions (computation + visualization) |
| 30 | +# Integrated plotting functions (computation + visualization) |
30 | 31 | export plot_parabola_roots_quadratic, plot_hyperbola, plot_hyperbola_axes_direct |
31 | 32 |
|
32 | 33 | # Always export new functions in main module |
@@ -186,14 +187,14 @@ CI=true julia --project=. test/runtests.jl |
186 | 187 | julia --project=. docs/make.jl |
187 | 188 | ``` |
188 | 189 |
|
189 | | -### Julia Compilation |
190 | | - |
191 | | -**CRITICAL**: First runs take 15-30 seconds for precompilation - DO NOT cancel early! |
192 | | - |
193 | | -- **First Run**: `Precompiling DrWatson... 3 dependencies successfully precompiled in 17 seconds` |
194 | | -- **Subsequent Runs**: Near-instant once cache exists |
195 | | -- **Applies to**: ALL Julia commands including tests |
196 | | - |
| 190 | +## Julia Compilation Considerations |
| 191 | +- **Be Patient with First Runs**: Julia often needs to precompile packages and rebuild project cache on first run. when running a Julia command in the CLI for the first time, it may take a while to precompile the packages and build the project cache, so you won't see the results of running the command for a while. |
| 192 | +- **Typical First Run**: May take 15-30 seconds for precompilation before tests actually start |
| 193 | +- **Example Expected Output**: `Precompiling DrWatson... 3 dependencies successfully precompiled in 17 seconds` |
| 194 | +- **Subsequent Runs**: Much faster once cache is built |
| 195 | +- **Don't Cancel Early**: Allow time for compilation phase to complete |
| 196 | +- **IMPORTANT**: This applies to ALL Julia commands including CI testing with `CI=true julia --project=. test/runtests.jl` |
| 197 | +- |
197 | 198 | ### CI/CD Pipeline |
198 | 199 |
|
199 | 200 | - **Tests**: Run on all PRs (`.github/workflows/CI.yml`) |
@@ -325,7 +326,9 @@ Documentation in `docs/src/` explains general math concepts (not code). Follow t |
325 | 326 | - LaTeX syntax for symbols: `^\circ` not `°`, `\frac{}{}` for fractions |
326 | 327 | - Label variables clearly: "where: $r$ = radius, $θ$ = angle" |
327 | 328 | - Use aligned equations: `\begin{aligned}...\end{aligned}` for multi-step derivations |
328 | | -- Use square brackets `[x, y]` for point coordinates consistently across documentation |
| 329 | +- **Square brackets in LaTeX math**: Use `\lbrack` and `\rbrack` instead of `[` and `]` inside math expressions to avoid markdown link interpretation errors |
| 330 | + - ✅ **CORRECT**: `$\mathbf{v} = \lbrack v_1, v_2 \rbrack$` |
| 331 | + - ❌ **WRONG**: `$\mathbf{v} = [v_1, v_2]$` (markdown interprets `[v_1, v_2]` as a link) |
329 | 332 |
|
330 | 333 | **MathWorld Links:** |
331 | 334 | - Link every new mathematical term on first mention |
|
0 commit comments