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)13DkerProc(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