diff --git a/common/constants.org b/common/constants.org new file mode 100644 index 0000000..626e916 --- /dev/null +++ b/common/constants.org @@ -0,0 +1,102 @@ +#+begin_src elisp tangle: no :results none +(setq pwd (file-name-directory buffer-file-name)) +(setq name (file-name-nondirectory (substring buffer-file-name 0 -4))) +(setq lib (concat pwd "lib/")) +(setq testdir (concat pwd "test/")) +(setq mli (concat lib name ".mli")) +(setq ml (concat lib name ".ml")) +(setq test-ml (concat testdir name ".ml")) +(org-babel-tangle) +#+end_src + +* Constants + :PROPERTIES: + :header-args: :noweb yes :comments both + :END: + + All constants used in the program. + + + #+begin_src ocaml :tangle (eval mli) + #+end_src + + #+begin_src ocaml :tangle (eval ml) :exports none + #+end_src + +** Thresholds + + +*** ~epsilon~ + + Value below which a float is considered null. Default is + \epsilon = 2.10^{-15}. + + #+begin_src ocaml :tangle (eval mli) +val epsilon : float + #+end_src + + #+begin_src ocaml :tangle (eval ml) :exports none +let epsilon = 2.e-15 + #+end_src + + +*** ~integrals_cutoff~ + + Cutoff value for integrals. Default is \epsilon . + #+begin_src ocaml :tangle (eval mli) +val integrals_cutoff : float + #+end_src + + #+begin_src ocaml :tangle (eval ml) :exports none +let integrals_cutoff = epsilon + #+end_src + + +** Mathematical constants + + | ~pi~ | $\pi = 3.141~592~653~589~793~12$ | + | ~two_pi~ | $2 \pi$ | + | ~sq_pi~ | $\sqrt{\pi}$ | + | ~sq_pi_over_two~ | $\sqrt{\pi} / 2$ | + | ~pi_inv~ | $1 / \pi$ | + | ~two_over_sq_pi~ | $2 / \sqrt{\pi}$ | + + #+begin_src ocaml :tangle (eval mli) +val pi : float +val two_pi : float +val sq_pi : float +val sq_pi_over_two : float +val pi_inv : float +val two_over_sq_pi : float + #+end_src + + #+begin_src ocaml :tangle (eval ml) :exports none +let pi = acos (-1.) +let two_pi = 2. *. pi +let sq_pi = sqrt pi +let sq_pi_over_two = sq_pi *. 0.5 +let pi_inv = 1. /. pi +let two_over_sq_pi = 2. /. sq_pi + #+end_src + + +** Physical constants + + | ~a0~ | Bohr's radius : $a_0 = 0.529~177~210~67(23)$ angstrom | + | ~a0_inv~ | $1 / a_0$ | + | ~ha_to_ev~ | Hartree to eV conversion factor : $27.211~386~02(17)$ | + | ~ev_to_ha~ | eV to Hartree conversion factor : 1 / ~ha_to_ev~ | + + #+begin_src ocaml :tangle (eval mli) +val a0 : float +val a0_inv : float +val ha_to_ev : float +val ev_to_ha : float + #+end_src + + #+begin_src ocaml :tangle (eval ml) :exports none +let a0 = 0.529_177_210_67 +let a0_inv = 1. /. a0 +let ha_to_ev = 27.211_386_02 +let ev_to_ha = 1. /. ha_to_ev + #+end_src diff --git a/common/lib/constants.ml b/common/lib/constants.ml index f96a4c9..e5fb497 100644 --- a/common/lib/constants.ml +++ b/common/lib/constants.ml @@ -1,15 +1,27 @@ +(* [[file:../constants.org::*Constants][Constants:2]] *) + +(* Constants:2 ends here *) + +(* [[file:../constants.org::*~epsilon~][~epsilon~:2]] *) let epsilon = 2.e-15 +(* ~epsilon~:2 ends here *) + +(* [[file:../constants.org::*~integrals_cutoff~][~integrals_cutoff~:2]] *) let integrals_cutoff = epsilon +(* ~integrals_cutoff~:2 ends here *) -(** Constants *) -let pi = acos (-1.) -let two_pi = 2. *. pi -let sq_pi = sqrt pi +(* [[file:../constants.org::*Mathematical constants][Mathematical constants:2]] *) +let pi = acos (-1.) +let two_pi = 2. *. pi +let sq_pi = sqrt pi let sq_pi_over_two = sq_pi *. 0.5 -let pi_inv = 1. /. pi -let two_over_sq_pi = 2. /. (sqrt pi) +let pi_inv = 1. /. pi +let two_over_sq_pi = 2. /. sq_pi +(* Mathematical constants:2 ends here *) +(* [[file:../constants.org::*Physical constants][Physical constants:2]] *) let a0 = 0.529_177_210_67 let a0_inv = 1. /. a0 let ha_to_ev = 27.211_386_02 let ev_to_ha = 1. /. ha_to_ev +(* Physical constants:2 ends here *) diff --git a/common/lib/constants.mli b/common/lib/constants.mli index 5997ef3..9326ba6 100644 --- a/common/lib/constants.mli +++ b/common/lib/constants.mli @@ -1,45 +1,64 @@ -(** All constants used in the program. - *) +(* Constants + * :PROPERTIES: + * :header-args: :noweb yes :comments both + * :END: + * + * All constants used in the program. *) + -(** {2 Thresholds } *) +(* [[file:../constants.org::*Constants][Constants:1]] *) + +(* Constants:1 ends here *) + +(* ~epsilon~ + * + * Value below which a float is considered null. Default is + * \epsilon = 2.10^{-15}. *) + + +(* [[file:../constants.org::*~epsilon~][~epsilon~:1]] *) val epsilon : float -(** Value below which a float is considered null. Default is {% $\epsilon$ %} = 10{^-20}. *) +(* ~epsilon~:1 ends here *) +(* ~integrals_cutoff~ + * + * Cutoff value for integrals. Default is \epsilon . *) + +(* [[file:../constants.org::*~integrals_cutoff~][~integrals_cutoff~:1]] *) val integrals_cutoff : float -(** Cutoff value for integrals. Default is 10{^-15}. *) +(* ~integrals_cutoff~:1 ends here *) -(** {2 Mathematical constants } *) - -val pi : float -(** {% $\pi$ %} = 3.141_592_653_589_793_12 *) - -val two_pi : float -(** {% $2\pi$ %} *) - -val sq_pi : float -(** {% $\sqrt{\pi}$ %} *) +(* Mathematical constants + * + * | ~pi~ | $\pi = 3.141~592~653~589~793~12$ | + * | ~two_pi~ | $2 \pi$ | + * | ~sq_pi~ | $\sqrt{\pi}$ | + * | ~sq_pi_over_two~ | $\sqrt{\pi} / 2$ | + * | ~pi_inv~ | $1 / \pi$ | + * | ~two_over_sq_pi~ | $2 / \sqrt{\pi}$ | *) + +(* [[file:../constants.org::*Mathematical constants][Mathematical constants:1]] *) +val pi : float +val two_pi : float +val sq_pi : float val sq_pi_over_two : float -(** {% $\frac{\sqrt{\pi}}{2}$ %} *) - -val pi_inv : float -(** {% $\frac{1}{\pi}$ %} *) - +val pi_inv : float val two_over_sq_pi : float -(** {% $\frac{2}{\sqrt{\pi}}$ %} *) +(* Mathematical constants:1 ends here *) -(** {2 Physical constants} *) - -val a0 : float -(** Bohr radius : {% $a_0$ %} = 0.529 177 210 67(23) Angstrom *) - -val a0_inv : float -(** {% $\frac{1}{a_0}$ %} *) +(* Physical constants + * + * | ~a0~ | Bohr's radius : $a_0 = 0.529~177~210~67(23)$ angstrom | + * | ~a0_inv~ | $1 / a_0$ | + * | ~ha_to_ev~ | Hartree to eV conversion factor : $27.211~386~02(17)$ | + * | ~ev_to_ha~ | eV to Hartree conversion factor : 1 / ~ha_to_ev~ | *) + +(* [[file:../constants.org::*Physical constants][Physical constants:1]] *) +val a0 : float +val a0_inv : float val ha_to_ev : float -(** Hartree to eV conversion factor :: 27.211 386 02(17) *) - val ev_to_ha : float -(** eV to Hartree conversion factor : 1/{ha_to_ev} *) - +(* Physical constants:1 ends here *)