6346 Commits

Author SHA1 Message Date
Dan Kortschak d931050349 stat: add type 7 linear cumulant kind 2026-03-22 04:32:09 +10:30
Schwarf 31a7a4592c graph/topo: add transitive reduction for DAGs 2026-02-22 18:44:47 +10:30
Shieldine fc402bc485 spatial: add Umeyama's algorithm for estimating point pattern transformation parameters v0.17.0 2025-12-30 05:46:44 +10:30
MohamedAliBouhaouala 93a8c051bb A+C: add Mohamed Ali Bouhaouala 2025-12-21 09:27:39 +10:30
MohamedAliBouhaouala 837a68db3f optimize: add configurable MinimumStepSize 2025-12-21 09:27:12 +10:30
Schwarf ac810a105c mathext: optimize Li2 and add benchmarks
This optimizes the complex dilogarithm Li2 using targeted mappings
(reflection/inversion), a real-axis fast path, and a Bernoulli-in-x
expansion (x = -log(1 - z)), inspired by this Rust implementation[1]
(and references therein). The exported API remains unchanged, and
runtime improvements are measured by an added BenchmarkLi2.

Performance improvements range from a few percent to large factors,
depending on the region of the complex plane.

[1]https://github.com/Expander/polylog.rs
2025-11-17 05:11:26 +10:30
Nathan Rooy 9a4c13cfe2 A+C: add Nathan Rooy 2025-11-13 20:26:00 +10:30
Nathan Rooy 8da34cf6b4 optimize/functions: add sphere function 2025-11-13 20:25:44 +10:30
Fumin a9119bd313 distuv: add non-central t distribution 2025-11-02 11:43:05 +10:30
Dan Kortschak 27d16a49cb spatial/r2: increase box scale test tolerance 2025-10-03 19:32:35 +09:30
Sebastien Binet ba05c1592d all: use go tool directive
Fixes #2021

Signed-off-by: Sebastien Binet <binet@cern.ch>
2025-10-03 09:16:48 +00:00
Schwarf 9c251ca029 mathext: add dilogarithm function Li2 2025-09-25 05:14:24 +09:30
Sebastien Binet ceaa7d4909 cmplxs,floats: fix testing.T.Errorf compilation error
This CL fixes the following compilation error while running 'go test':

```
Error: cmplxs/cmplxs_test.go:476:12: non-constant format string in call to (*testing.common).Errorf
```

Signed-off-by: Sebastien Binet <binet@cern.ch>
2025-09-21 14:15:33 +02:00
Sebastien Binet 23a9d8b2b9 all: bump Go-1.25, drop Go-1.23
Signed-off-by: Sebastien Binet <binet@cern.ch>
2025-09-21 14:15:33 +02:00
Fumin 509ffe02fb mathext: add Hypergeo for computing the Gaussian Hypergeometric function 2025-09-04 04:25:46 +09:30
Andreas Scharf c6813e1666 A+C: add Andreas Scharf 2025-08-30 19:36:30 +09:30
Schwarf 98271d5d64 graph/network: add Dinic maximum flow function 2025-08-30 19:35:24 +09:30
shaoyu 4ef4dacfdd A+C: add Fumin Wang 2025-06-08 19:30:43 +02:00
Shieldine 720fcb9699 A+C: add Agnes Widera 2025-04-23 07:35:41 +09:30
Shieldine 672aa59ec6 stat: implement Wasserstein distance calculation 2025-04-23 07:35:14 +09:30
Sebastien Binet 4408afacd1 stat: add an example to compute a confidence interval
This CL adds an example showing how to compute the confidence
interval of the mean for a small sample.

Signed-off-by: Sebastien Binet <binet@cern.ch>
2025-03-31 09:53:22 +02:00
Nicolas Peugnet 43738f81c9 graph/network: add diameter example for Eccentricity 2025-03-28 05:40:58 +10:30
Nicolas Peugnet 844ab04bd4 graph/network: add test for eccentricity with digraphs 2025-03-26 21:50:27 +10:30
Nicolas Peugnet 7bcd388d65 A+C: add Nicolas Peugnet 2025-03-26 21:00:08 +10:30
Nicolas Peugnet 6b50a8944e graph/network: add eccentricity measurement 2025-03-26 20:59:44 +10:30
Dan Kortschak e62ddf595a lapack/testlapack: fix random source use
This replaces a use of the global rand with the intended local rnd which
was missed.
2025-03-26 16:47:26 +10:30
Dan Kortschak 7826ba4358 github: add reading check instruction to pr template v0.16.0 2025-03-22 05:10:20 +10:30
kevincatty bbabe751f5 A+C: add Zhan Shan Mao
Signed-off-by: kevincatty <zhanshanmao@outlook.com>
2025-03-18 05:39:37 +10:30
kevincatty 808cbd482b lapack: fix eigenvector normalization residual calculation
Signed-off-by: kevincatty <zhanshanmao@outlook.com>
2025-03-18 05:39:12 +10:30
Sebastien Binet 3b4190ae78 all: bump gonum/plot@v0.15.2
Signed-off-by: Sebastien Binet <binet@cern.ch>
2025-03-14 09:53:36 +01:00
Dan Kortschak 7f45d71405 graph/iterator: reflect the swiss map iterator shape 2025-03-11 05:06:05 +10:30
Sebastien Binet d39b80c47e ci: bump WillAbides/setup-go-faster@1.14
Signed-off-by: Sebastien Binet <binet@cern.ch>
2025-02-14 11:49:57 +01:00
Sebastien Binet 571acd82cc blas/testblas,optimize: apply staticcheck suggestions
Signed-off-by: Sebastien Binet <binet@cern.ch>
2025-02-14 11:49:57 +01:00
Sebastien Binet 23cc2a72e4 ci: bump staticcheck@2025.1
Signed-off-by: Sebastien Binet <binet@cern.ch>
2025-02-14 11:49:57 +01:00
Sebastien Binet 72d9f395e5 all: use Go-1.24, drop Go-1.22
Signed-off-by: Sebastien Binet <binet@cern.ch>
2025-02-14 11:49:57 +01:00
Dan Kortschak 3f7594a060 graph/formats/rdf: regenerate with new ragel version
Despite not showing a change in ragel -v output, the new version of
ragel (6.10-4 over 6.10-1 on my local machine) has a different output.
The differences appear to be incorrect in the new version, but will not
change the behaviour except for the reported lines in a panic or other
stack trace, so let's just go with what the new version has.
2025-02-01 22:18:04 +10:30
Dan Kortschak 061ef9d2b9 internal/rand: delete shim package 2025-02-01 22:18:04 +10:30
Dan Kortschak bc349ecfab all: replace internal rand shim with math/rand/v2 2025-02-01 22:18:04 +10:30
Dan Kortschak cf3307fa63 all: partially migrate to math/rand/v2
This is not intended to be a completed transition since it leaves the
libraries unusable to external client code, but rather as a step towards
use of math/rand/v2. This initial step allows repair of sequence change
failures without having to worry about API difference.
2025-02-01 22:18:04 +10:30
Oskar Haarklou Veileborg 87478959b2 A+C: add Oskar Haarklou Veileborg 2025-01-15 07:05:13 +10:30
Oskar Haarklou Veileborg ef1ae5e400 graph/path: improve performance of YenKShortestPaths
Add single-pair shortest path variant of Dijkstra. This variant can terminate
early when the target is reached, potentially make a large difference in
running time for Yen's k-shortest paths algorithm, as it makes many calls to
the shortest path subroutine.

The variant is also exposed for external use.
2025-01-15 07:04:43 +10:30
Dan Kortschak f42c07e8cb all: fix typos 2025-01-01 08:26:48 +10:30
Rob Kleffner ca6b5f46d4 A+C: add Robert Kleffner 2024-12-14 06:25:09 +10:30
Robert Kleffner 0c3ed0bb60 dsp/transform: new package and initial Hilbert transform 2024-12-14 06:24:41 +10:30
Jack Tudbury c2ad6d4ef1 A+C: add Jack Tudbury 2024-11-23 14:12:45 +10:30
harpend 0dd167eaa3 graph/flow: add algorithm for finding intervals in flow graphs 2024-11-23 13:56:13 +10:30
Sebastien Binet 1ca563a018 all: bump x/{exp,image,mod,text,tools} and go-{fonts,latex}
Signed-off-by: Sebastien Binet <binet@cern.ch>
2024-09-04 08:31:37 +02:00
Jonathan Bluett-Duncan bdcda9a453 graph: use slices package for sorting and reversing slices v0.15.1 2024-08-17 08:41:18 +09:30
Tristan Nicholls a9b228ed6b A+C: add Tristan Nicholls 2024-08-17 06:04:00 +09:30
Tristan Nicholls 1f29d7b1d1 mat: calculate Q elements lazily when calling QR.At
When a matrix is very tall, calculating Q will currently allocate a
large Q at the end of the factorisation, even if it is not going to be
used, and a large Q matrix can lead to out of memory issues.

For this reason, Q is never eagerly computed unless explicitly required
to by the user, with QR.ToQ.
To keep fulfilling the Matrix interface, the QR.At method will compute
the requested element only, which only require computing a single row of
Q.
2024-08-17 06:04:00 +09:30