If you look at 'src/input/derham.input' you will notice comment saying that it is quite slow for large n. I looked a bit at this and first observation is that slowness is due to kernel manipulations. Profile shows that almost all time goes into kernel maniputation, mainly 'SCACHE;linearSearch'. This is called from 'FS-;diffdiff' which is responsible for differentiating formal derivatives. Linear search is necessary due to the way we implement formal derivatives. But it is actually worse: repeating the same calculation shows growing time. Just to see scale, one of calculation in 'src/input/derham.input' is to calculate second exterior derivative of general form in n variables. General form involves n formal function in n variables. First exterior derivative needs to compute n^2 partial derivatives (n functions times n variables). Second exterior derivative needs n(n-1)n partial derivatives. So togeter about n^3 derivatives. For n=8 this is about 512. Even squared (due to linear search) this does not look like very large number of operations. However, formal derivative of order 2 contains derivatives of order 1. And it seems that due to use of dummies we create new kernels, so when we repeat calculation, then our cache keep growing.
This suggest that we should re-think representation of formal derivatives and possibly also use of dummies. -- Waldek Hebisch -- You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To unsubscribe from this group and stop receiving emails from it, send an email to fricas-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/fricas-devel/Zh3XyGN2q9qkl5ca%40fricas.org.