Port GSSVMDistribution and fix bessel_ratio normalization bug#1609
Port GSSVMDistribution and fix bessel_ratio normalization bug#1609
Conversation
Agent-Logs-Url: https://github.com/FlorianPfaff/PyRecEst/sessions/0e13025c-e4bf-4408-9fd4-8926ad29cc95 Co-authored-by: FlorianPfaff <6773539+FlorianPfaff@users.noreply.github.com>
…istribution tests Agent-Logs-Url: https://github.com/FlorianPfaff/PyRecEst/sessions/09bda777-60e4-4bfb-a88e-992398738c5d Co-authored-by: FlorianPfaff <6773539+FlorianPfaff@users.noreply.github.com>
✅MegaLinter analysis: Success
See detailed reports in MegaLinter artifacts Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining
|
|
@copilot Somewhere, pyrecest.backend is not used and some numpy object is created although it shouldn't be. |
|
@copilot Somewhere, pyrecest.backend is not used and some numpy object is created although it shouldn't be. |
…tats.vonmises.pdf Agent-Logs-Url: https://github.com/FlorianPfaff/PyRecEst/sessions/7c9c6cf0-3c05-4a8b-b788-b7ad856dee70 Co-authored-by: FlorianPfaff <6773539+FlorianPfaff@users.noreply.github.com>
Head branch was pushed to by a user without write access
Fixed in 65cb132. |
ea2fae9 to
7670a61
Compare

Adds
GSSVMDistribution(Generalized Skew-Symmetric Von Mises) to match the libDirectional API, and fixes a pre-existing bug inbessel_ratiothat made the PDF produceNaNfor all ordersm > 1.Bug fix:
bessel_ratioThe function was computing
I_p(z) / I_p(0), butI_p(0) = 0for allp > 0, causing division by zero. The normalization constants form=2,3,4requireI_p(κ) / I_0(κ):New class:
GSSVMDistributionGeneralizedKSineSkewedVonMisesDistributionwithk=1fixedn(order) instead ofm, matching libDirectional namingshift()returns aGSSVMDistributionrather than the base typepyrecest/distributions/__init__.pyTests
New test file
test_gssvm_distribution.pycovers initialization, parameter validation,n↔mmapping, non-negative PDFs forn=1..4, PDF parity with the parent class,shift()type/value,muwrapping, andNotImplementedErrorforn > 4.