PpHd (./44) :
C'est déjà fait. Et le GC en situation réelle consomme 5-10% du CPU.
Donc appeler n fois foo_c() en chaîne puis faire un eval() ne gagne que 5-10% (mettons 10-15% pour se laisser un peu de marge) par rapport à n foo() ?

Pollux (./42) :
Oui justement, je parle pas des extensions mais des nombres complexes : AMS peut rater des solutions à cause d'optimisations style e/e = 1. En fait c'est sûrement possible de faire ça avec des extensions, e/e serait représenté par l'extension when(e=0,UNDEF,1) -- il suffit d'avoir un flag pour dire à May de toujours le représenter par ça plutôt que par 1
Oui, cependant dans ce cas, je risque de partir dans une combinatoire exponentielle des décisions avec des WHEN partout. Ce qui n'est pas forcément plus utile.
- Il n'y a pas d'explosion exponentielle, les UNDEF sont absorbants ; après évidemment décider la satisfiabilité d'une branche du when est NP-dure si t'as des formules compliquées, mais 1) t'es pas obligé de la décider dans tous les cas, tu peux te contenter de dire que deux conditions de la même forme sont équivalentes et 2) en pratique les conditions seront pas forcément grosses
- Tu ne rajoutes une condition que quand tu fais une division, ce qui ne doit pas être très fréquent ?