diff options
author | arphaman <arphaman@gmail.com> | 2013-07-12 18:41:54 +0100 |
---|---|---|
committer | arphaman <arphaman@gmail.com> | 2013-07-12 18:41:54 +0100 |
commit | 78cd387e394747fcbfdb0ffac54a0b9a8c8bec37 (patch) | |
tree | bc3261fc8bb7b5844664a6aa1d9572ba4873aa8e /include/Numerical/Complex.h | |
parent | 7e433007c5e8dda8a993c279d86402257595d8e3 (diff) | |
download | libflangrt-78cd387e394747fcbfdb0ffac54a0b9a8c8bec37.tar.gz |
added complex number functions
Diffstat (limited to 'include/Numerical/Complex.h')
-rw-r--r-- | include/Numerical/Complex.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/include/Numerical/Complex.h b/include/Numerical/Complex.h new file mode 100644 index 0000000..2706bd2 --- /dev/null +++ b/include/Numerical/Complex.h @@ -0,0 +1,56 @@ +//===--- Complex.h - Complex numbers library --------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBFLANG_NUMERICAL_COMPLEX_H +#define LLVM_LIBFLANG_NUMERICAL_COMPLEX_H + +#include "Libflang.h" + +struct Complex4 { + float Re, Im; +}; + +struct Complex8 { + double Re, Im; +}; + +LIBFLANG_ABI Complex8 libflang_cpow(double LHSRe, double LHSIm, + double RHSRe, double RHSIm); +LIBFLANG_ABI Complex4 libflang_cpowf(float LHSRe, float LHSIm, + float RHSRe, float RHSIm); + +LIBFLANG_ABI Complex8 libflang_cpowi(double Re, double Im, + int32_t power); +LIBFLANG_ABI Complex4 libflang_cpowif(float Re, float Im, + int32_t power); + +// intrinsics + +LIBFLANG_ABI double libflang_cabs(double Re, double Im); +LIBFLANG_ABI float libflang_cabsf(float Re, float Im); + +LIBFLANG_ABI Complex8 libflang_csqrt(double Re, double Im); +LIBFLANG_ABI Complex4 libflang_csqrtf(float Re, float Im); + +LIBFLANG_ABI Complex8 libflang_cexp(double Re, double Im); +LIBFLANG_ABI Complex4 libflang_cexpf(float Re, float Im); + +LIBFLANG_ABI Complex8 libflang_clog(double Re, double Im); +LIBFLANG_ABI Complex4 libflang_clogf(float Re, float Im); + +LIBFLANG_ABI Complex8 libflang_csin(double Re, double Im); +LIBFLANG_ABI Complex4 libflang_csinf(float Re, float Im); + +LIBFLANG_ABI Complex8 libflang_ccos(double Re, double Im); +LIBFLANG_ABI Complex4 libflang_ccosf(float Re, float Im); + +LIBFLANG_ABI Complex8 libflang_ctan(double Re, double Im); +LIBFLANG_ABI Complex4 libflang_ctanf(float Re, float Im); + +#endif |