I need to compute Slater determinants. I'm wondering if I would benefit from assigning each of my functions to a variable prior to computation. I'm working with Slater determinants, but my question goes beyond them and applies to the computation of any determinant.

Say I have functions $f_n[x]$ which are sums of complex exponentials. If I want to compute the determinant of an $N\times N$ matrix, should I use the expanded form of $f_n[x]$ or variables ($a_1,a_2,b_1,b_2$, etc.), or else? Does Mathematica benefit from prior "simplification" of the matrix or not?

At the moment, I'm not concerned with speed because the systems I work with contain few electrons, but that will change.

  • $\begingroup$ You should be more descriptive in your question... give an example for the functions and the matrix constructed from your wavefunctions. It is not clear what $f_n$ refers to, what $a_i$ and $b_i$ are... $\endgroup$
    – rm -rf
    Commented Jun 26, 2012 at 16:33
  • $\begingroup$ I've been RM'ited. @R.M Well, my functions can be any functions, really. What I'm wondering is if Mathematica's algorithm for computing the determinant benefits from working with variables (a1,b2) rather than the whole functions. $\endgroup$
    – CHM
    Commented Jun 26, 2012 at 16:34
  • 2
    $\begingroup$ lol! "RMiting" is a thing now? :P $\endgroup$
    – rm -rf
    Commented Jun 26, 2012 at 16:37
  • $\begingroup$ @R.M I was referring to this ;) But concerning my question, I expressly wanted to make it general, and not specific to Slater determinants. The question has to do with how MMA computes the determinant. $\endgroup$
    – CHM
    Commented Jun 26, 2012 at 16:41
  • 4
    $\begingroup$ When dealing with many-particle systems, it's useful to know what observables you're after. E.g., are you planning to calculate expectation values of single-particle operators in the end? For most applications you will end up not needing the whole Slater determinant. Instead it is then computationally much more efficient to work with creation and annihilation operators which are defined as the act of adding and removing single-particle orbitals from the Slater determinant. That way you end up cleverly using the orthogonality of the orbitals. $\endgroup$
    – Jens
    Commented Jun 26, 2012 at 17:16

1 Answer 1


It seems that what you are actually looking for is efficient clean computations with Slater determinants.

1) Michael Trott who wrote The Mathematica Guide Books has produced numerous essential examples of efficient code. So seeing how this Demonstration works may get you started.

2) A recent package addresses this type of calculation: web site // article // source code

  • $\begingroup$ I'm having problems installing FermiFab on the mac. The author suggested a fix, which helped get past a compilation error, but now I'm having problems with a library not being found. I'll read that NB now, thanks! $\endgroup$
    – CHM
    Commented Jun 27, 2012 at 5:31
  • $\begingroup$ @Vitaliy Kaurov can you show more examples or information for the subject about the computations with Slater determinants. $\endgroup$
    – Orders
    Commented Oct 6, 2015 at 0:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.