mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-11-19 04:22:21 +01:00
55 lines
1.3 KiB
OCaml
55 lines
1.3 KiB
OCaml
exception AngularMomentumError of string
|
|
|
|
type t =
|
|
| S | P | D | F | G | H | I | J | K | L | M | N | O
|
|
|
|
let of_char = function
|
|
| 's' | 'S' -> S | 'p' | 'P' -> P
|
|
| 'd' | 'D' -> D | 'f' | 'F' -> F
|
|
| 'g' | 'G' -> G | 'h' | 'H' -> H
|
|
| 'i' | 'I' -> I | 'j' | 'J' -> J
|
|
| 'k' | 'K' -> K | 'l' | 'L' -> L
|
|
| 'm' | 'M' -> M | 'n' | 'N' -> N
|
|
| 'o' | 'O' -> O
|
|
| c -> raise (AngularMomentumError (String.make 1 c))
|
|
|
|
let to_string = function
|
|
| S -> "S" | P -> "P"
|
|
| D -> "D" | F -> "F"
|
|
| G -> "G" | H -> "H"
|
|
| I -> "I" | J -> "J"
|
|
| K -> "K" | L -> "L"
|
|
| M -> "M" | N -> "N"
|
|
| O -> "O"
|
|
|
|
let to_char = function
|
|
| S -> 'S' | P -> 'P'
|
|
| D -> 'D' | F -> 'F'
|
|
| G -> 'G' | H -> 'H'
|
|
| I -> 'I' | J -> 'J'
|
|
| K -> 'K' | L -> 'L'
|
|
| M -> 'M' | N -> 'N'
|
|
| O -> 'O'
|
|
|
|
let to_int = function
|
|
| S -> 0 | P -> 1
|
|
| D -> 2 | F -> 3
|
|
| G -> 4 | H -> 5
|
|
| I -> 6 | J -> 7
|
|
| K -> 8 | L -> 9
|
|
| M -> 10 | N -> 11
|
|
| O -> 12
|
|
|
|
let of_int = function
|
|
| 0 -> S | 1 -> P
|
|
| 2 -> D | 3 -> F
|
|
| 4 -> G | 5 -> H
|
|
| 6 -> I | 7 -> J
|
|
| 8 -> K | 9 -> L
|
|
| 10 -> M | 11 -> N
|
|
| 12 -> O
|
|
| c -> raise (AngularMomentumError (string_of_int c))
|
|
|
|
|
|
|