File: toms_wrappers.c

package info (click to toggle)
python-scipy 0.3.2-6
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 13,572 kB
  • ctags: 20,326
  • sloc: ansic: 87,138; fortran: 51,876; python: 47,747; cpp: 2,134; objc: 384; makefile: 175; sh: 83
file content (35 lines) | stat: -rw-r--r-- 940 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* This file is a collection (more can be added) of wrappers around some
 *  ToMS Fortran algorithm, so that they can be called from
 *  cephesmodule.so
 */

#include "toms_wrappers.h"
#if defined(NO_APPEND_FORTRAN)
#if defined(UPPERCASE_FORTRAN)
#define F_FUNC(f,F) F
#else
#define F_FUNC(f,F) f
#endif
#else
#if defined(UPPERCASE_FORTRAN)
#define F_FUNC(f,F) F##_
#else
#define F_FUNC(f,F) f##_
#endif
#endif
/* This must be linked with fortran
 */
extern void F_FUNC(wofz,WOFZ)(double*,double*,double*,double*,int*);

Py_complex cwofz_wrap( Py_complex z) {
  int errflag;
  Py_complex cy;

  F_FUNC(wofz,WOFZ)(CADDR(z), CADDR(cy), &errflag);
  if (errflag==1) mtherr("wofz:",3); /* wofz returns a single flag both
                                        for real overflows and for domain
                                        errors -- internal overflows from too
                                        large abs(z)*/
  return cy;
}