File: toms_wrappers.c

package info (click to toggle)
python-scipy 0.5.2-0.1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 33,888 kB
  • ctags: 44,231
  • sloc: ansic: 156,256; cpp: 90,347; python: 89,604; fortran: 73,083; sh: 1,318; objc: 424; makefile: 342
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;
}