Jspice3
points.c File Reference
#include "spice.h"
#include "plotdefs.h"
Include dependency graph for points.c:

Go to the source code of this file.

Functions

double * ft_minmax (struct dvec *v, bool real)
 
int ft_findpoint (double pt, double *lims, maxp, minp, bool islog)
 
double * ft_SMITHminmax (struct dvec *v, bool yval)
 
 SMITH_tfm (double re, double im, double *x, double *y)
 

Function Documentation

int ft_findpoint ( double  pt,
double *  lims,
maxp  ,
minp  ,
bool  islog 
)

Definition at line 55 of file points.c.

59 {
60  double tl, th;
61 
62  if (pt < lims[0])
63  pt = lims[0];
64  if (pt > lims[1])
65  pt = lims[1];
66  if (islog) {
67  tl = mylog10(lims[0]);
68  th = mylog10(lims[1]);
69  return (((mylog10(pt) - tl) / (th - tl)) *
70  (maxp - minp) + minp);
71  }
72  else {
73  return (((pt - lims[0]) / (lims[1] - lims[0])) *
74  (maxp - minp) + minp);
75  }
76 }
#define mylog10(xx)
Definition: ftedefs.h:53
double* ft_minmax ( struct dvec v,
bool  real 
)

Definition at line 17 of file points.c.

21 {
22  static double res[2];
23  int i;
24  double d;
25 
26  if (isreal(v))
27  d = v->v_realdata[0];
28  else if (real)
29  d = realpart(&v->v_compdata[0]);
30  else
31  d = imagpart(&v->v_compdata[0]);
32 
33  res[0] = d;
34  res[1] = d;
35 
36  for (i = 1; i < v->v_length; i++) {
37  if (isreal(v))
38  d = v->v_realdata[i];
39  else if (real)
40  d = realpart(&v->v_compdata[i]);
41  else
42  d = imagpart(&v->v_compdata[i]);
43  if (d < res[0]) res[0] = d;
44  if (d > res[1]) res[1] = d;
45  }
46  return (res);
47 }
complex * v_compdata
Definition: ftedata.h:29
Definition: cddefs.h:237
#define isreal(v)
Definition: ftedata.h:54
#define imagpart(cval)
Definition: cpstd.h:36
int v_length
Definition: ftedata.h:34
double * v_realdata
Definition: ftedata.h:28
#define realpart(cval)
Definition: cpstd.h:35
double* ft_SMITHminmax ( struct dvec v,
bool  yval 
)

Definition at line 83 of file points.c.

87 {
88  static double res[2];
89  int i;
90  double d, d2;
91 
92  if (isreal(v))
93  SMITH_tfm( v->v_realdata[0], 0.0, &d, &d2 );
94  else
95  SMITH_tfm( realpart(&v->v_compdata[0]),
96  imagpart(&v->v_compdata[0]), &d, &d2 );
97  /* we are looking for min/max X or Y ralue */
98  if (yval)
99  d = d2;
100 
101  res[0] = d;
102  res[1] = d;
103 
104  for (i = 1; i < v->v_length; i++) {
105  if (isreal(v))
106  SMITH_tfm( v->v_realdata[i], 0.0, &d, &d2 );
107  else
108  SMITH_tfm( realpart(&v->v_compdata[i]),
109  imagpart(&v->v_compdata[i]), &d, &d2 );
110  /* we are looking for min/max X or Y ralue */
111  if (yval)
112  d = d2;
113 
114  if (d < res[0]) res[0] = d;
115  if (d > res[1]) res[1] = d;
116  }
117  return (res);
118 }
complex * v_compdata
Definition: ftedata.h:29
SMITH_tfm(double re, double im, double *x, double *y)
Definition: points.c:121
Definition: cddefs.h:237
#define isreal(v)
Definition: ftedata.h:54
#define imagpart(cval)
Definition: cpstd.h:36
int v_length
Definition: ftedata.h:34
double * v_realdata
Definition: ftedata.h:28
#define realpart(cval)
Definition: cpstd.h:35
SMITH_tfm ( double  re,
double  im,
double *  x,
double *  y 
)

Definition at line 121 of file points.c.

125 {
126  double dnom;
127 
128  dnom = (re + 1) * (re + 1) + im * im;
129  *x = (re * re + im * im - 1) / dnom;
130  *y = 2 * im / dnom;
131 }