For now I'm using the libm routines, since I'm not convinced that the alternatives are really better. For complex numbers, I'm adding the following, rather simple, routines. If Emil (or someone else) wants to provide more optimized/numerically stable versions, let me know. function Complex_ArcSin (z: Complex): Complex; var t: Complex; begin t := Ln (Cmplx (-Im (z), Re (z)) + SqRt (1 - Sqr (z))); Complex_ArcSin := Cmplx (Im (t), -Re (t)) end; function Complex_ArcCos (z: Complex): Complex; var t: Complex; begin t := Ln (z + SqRt (Sqr (z) - 1)); Complex_ArcCos := Cmplx (Im (t), -Re (t)) end; Frank -- Frank Heckenbach, frank@g-n-u.de, http://fjf.gnu.de/, 7977168E GPC To-Do list, latest features, fixed bugs: http://www.gnu-pascal.de/todo.html GPC download signing key: 51FF C1F0 1A77 C6C2 4482 4DDC 117A 9773 7F88 1707