Skip to content

Conversation

@MichaelABurr
Copy link
Member

This is work started at the M2 conference in Madison. This is the pull request to add CCi support to M2. This includes implementations in the M2 language, the D-language, and aring support for polynomials and matrices in the back-end.

d-torrance and others added 30 commits June 30, 2025 10:58
Matrix internals have changed
RRb and CCb will be added later and will use GC-allocated memory.
@MichaelABurr
Copy link
Member Author

MichaelABurr commented Nov 25, 2025

I don't know why the test is failing (did we break something or is something bigger broken?) Help would be appreciated. I found the change that was causing this. But, I'm not sure the best way to do this.

@MichaelABurr
Copy link
Member Author

MichaelABurr commented Nov 28, 2025

I briefly checked over the most recent changes, and I'm OK with them. I didn't see any drastic changes there (indenting and tests, only, I think). I also did a check with my local copy, and I didn't see any issues. I'm ok with merging whenever you're happy (and the review has passed).

@d-torrance d-torrance mentioned this pull request Dec 1, 2025
Copy link
Contributor

@antonleykin antonleykin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm taken away a bit by

i8 : # methods regularizedBeta                                                                       
                                                                                                     
o8 = 125  

for a method with basic usage:

regularizedBeta(x, a, b)                                                                
       * Inputs:                                                                                     
           * x, a "real number",                                                                     
           * a, a "real number",                                                                     
           * b, a "real number",                                                                     
       * Outputs:                                                                                    
           * a "real number",   

Indeed, $125 = 5^3$, but isn't it a bit too much?

@d-torrance
Copy link
Member

Yeah, we could probably replace most of those with something like regularizedBeta(InexactNumber, InexactNumber, InexactNumber). I'll play around with it

Previously, we were just adding/subtracting 1 first, and thus losing
precision for small inputs.
This way, we don't have to worry about storing them as methods for all
four different InexactNumber types.
@d-torrance
Copy link
Member

This is a bit more manageable!

i1 : methods regularizedBeta

o1 = {0 => (regularizedBeta, Number, InexactNumber, InexactNumber)       }
     {1 => (regularizedBeta, InexactNumber, Number, InexactNumber)       }
     {2 => (regularizedBeta, InexactNumber, InexactNumber, Number)       }
     {3 => (regularizedBeta, Number, Number, InexactNumber)              }
     {4 => (regularizedBeta, Number, InexactNumber, Number)              }
     {5 => (regularizedBeta, InexactNumber, Number, Number)              }
     {6 => (regularizedBeta, Number, Number, Number)                     }
     {7 => (regularizedBeta, InexactNumber, InexactNumber, InexactNumber)}

o1 : NumberedVerticalList

Not quite correct since they're only defined for RR, but this way the
Number methods will get defined in typicalvalues.m2.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants