AngouriMath icon indicating copy to clipboard operation
AngouriMath copied to clipboard

Yoakke parser rewrite

Open WhiteBlackGoose opened this issue 2 years ago • 5 comments

WhiteBlackGoose avatar Jun 13 '22 10:06 WhiteBlackGoose

186/251 parsing tests pass so far

WhiteBlackGoose avatar Jun 13 '22 18:06 WhiteBlackGoose

222/239

WhiteBlackGoose avatar Jun 14 '22 10:06 WhiteBlackGoose

232/239

WhiteBlackGoose avatar Jun 14 '22 10:06 WhiteBlackGoose

Full report (first line - now, second one - how it was)

Method                Mean                              
ParseEasy             6,815,103 ns           
ParseEasy                38,910 ns              
                                        
ParseHard             88,204,656 ns          
ParseHard              4,391,397 ns           
                                        
SimplifyEasy          180,776 ns             
SimplifyEasy           70,517 ns              
                                        
SimplifyHard          4,622,871,968 ns       
SimplifyHard          4,880,437,739 ns       
                                        
Derivate              107,337 ns             
Derivate               48,712 ns              
                                        
SolveEasy             34,736,589 ns          
SolveEasy             34,993,516 ns          
                                        
SolveEasyMedium       212,730 ns             
SolveEasyMedium        83,940 ns              
                                        
SolveMedium           7,643,240 ns           
SolveMedium           2,560,370 ns           
                                        
SolveMediumHard       370,657,437 ns         
SolveMediumHard       378,002,345 ns         
                                        
SolveHard             3,267,480,539 ns       
SolveHard             3,408,514,454 ns       
                                        
EvalEasy              775 ns                 
EvalEasy                9 ns                   
                                        
CompileEasy           521,392 ns             
CompileEasy           384,260 ns             
                                        
CompileHard           1,189,803 ns           
CompileHard             966,155 ns             
                                        
RunEasy               38 ns                  
RunEasy               33 ns                  
                                        
RunMedium             338 ns                 
RunMedium             299 ns                 
                                        
RunHard               4,059 ns          
RunHard                 641 ns          

(huge performance regression 😢 )

WhiteBlackGoose avatar Jun 14 '22 15:06 WhiteBlackGoose

We need to make Yoakke orders of magnitude more performant. Work happens here: https://github.com/LanguageDev/Yoakke/pull/149.

Also I might need to optimize the transformers themselves.

WhiteBlackGoose avatar Jun 14 '22 20:06 WhiteBlackGoose