1 /**********
2 Copyright 1990 Regents of the University of California.  All rights reserved.
3 Author: 1988 Jaijeet S Roychowdhury
4 **********/
5 
6 #include "ngspice/ngspice.h"
7 #include "ngspice/cktdefs.h"
8 #include "ngspice/sperror.h"
9 #include "ngspice/distodef.h"
10 
11 
12 int
DkerProc(int type,double * rPtr,double * iPtr,int size,DISTOAN * job)13 DkerProc(int type, double *rPtr, double *iPtr, int size, DISTOAN *job)
14 {
15 int i;
16 
17 NG_IGNORE(job);
18 
19 switch(type) {
20 
21   case D_F1:
22 
23 
24     for (i=1;i<=size;i++)
25 	{
26 	iPtr[i] *= 2.0; /* convert to sinusoid amplitude */
27 	rPtr[i] *= 2.0;
28 	}
29 
30     break;
31 
32   case D_F2:
33 
34 
35     for (i=1;i<=size;i++)
36 	{
37 	rPtr[i] *= 2.0;
38         iPtr[i] *= 2.0;
39 	}
40 
41    break;
42 
43  case D_TWOF1:
44 
45 
46     for (i=1;i<=size;i++)
47 	{
48 	iPtr[i] *= 2.0;
49 	rPtr[i] *= 2.0;
50 	}
51 
52    break;
53 
54  case D_THRF1:
55 
56 
57     for (i=1;i<=size;i++)
58 	{
59 	iPtr[i] *= 2.0;
60 	rPtr[i] *= 2.0;
61 	}
62 
63     break;
64 
65  case D_F1PF2:
66 
67 
68     for (i=1;i<=size;i++)
69 	{
70 	iPtr[i] *= 4.0;
71 	rPtr[i] *= 4.0;
72 	}
73 
74     break;
75 
76  case D_F1MF2:
77 
78 
79     for (i=1;i<=size;i++)
80 	{
81 	iPtr[i] *= 4.0;
82 	rPtr[i] *= 4.0;
83 	}
84 
85     break;
86 
87  case D_2F1MF2:
88 
89     for (i=1;i<=size;i++)
90 	{
91 	iPtr[i] *= 6.0;
92 	rPtr[i] *= 6.0;
93 	}
94 
95     break;
96 
97  default:
98 
99 	return(E_BADPARM);
100 
101 }
102 
103 return(OK);
104 }
105