From efc7ea70e0e9fcbe6b0642b83f0a20cb850abf3e Mon Sep 17 00:00:00 2001 From: mattsignorelli Date: Sun, 15 Sep 2024 17:21:42 -0400 Subject: [PATCH] added note on v1.9 bug to docs --- docs/src/man/k_fastgtpsa.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/man/k_fastgtpsa.md b/docs/src/man/k_fastgtpsa.md index 85cbc1d..7e10184 100644 --- a/docs/src/man/k_fastgtpsa.md +++ b/docs/src/man/k_fastgtpsa.md @@ -84,7 +84,7 @@ Both `@FastGTPSA` and `@FastGTPSA!` basically tell the code to instead use a per The speedup of using the macro can be quite significant. See our [example](https://github.com/bmad-sim/GTPSA.jl/blob/main/benchmark/track.jl), where we observe a x2 speedup at 2nd order. ## Note on Julia Versions < v1.10 -In order to support vectorized/broadcasted operations using `@FastGTPSA!` with *zero* allocations, `setindex!` was overloaded for `Array{<:TPS}` types. This can lead to massive speedups in calculating Taylor maps in simulations using a structure-of-arrays layout of memory. However, it turns out that on Julia versions < v1.10, merely overloading this function causes allocations when using the macro. It currently is not understood why (seems like a bug in previous Julia versions), however we strongly recommend using Julia version >= v1.10 with this package. If you are stuck with Julia v1.9, then you can use GTPSA v1.1.1, which is the latest version that does not have this particular overload. With this, you cannot do broadcasted operators using the macros, but you will have zero allocations for non-vector `TPS` operations. +In order to support vectorized/broadcasted operations using `@FastGTPSA!` with *zero* allocations, `setindex!` was overloaded for `Array{<:TPS}` types. This can lead to massive speedups in calculating Taylor maps in simulations using a structure-of-arrays layout of memory. However, it turns out that on Julia versions < v1.10, merely overloading this function causes allocations when using the macro. It currently is not understood why (seems like a bug in previous Julia versions), however we therefore strongly recommend using Julia version >= v1.10 with this package. If you are stuck with Julia v1.9, then you can use GTPSA v1.1.1, which is the latest version that does not have this particular overload. With this, you cannot do broadcasted operators using the macros, but you will have zero allocations for non-vector `TPS` operations. ## Documentation