Hi,
I am totally new to C programming on Sun Solaris environment. I am an active member on the UNIX forum and a good shell programmer.
I am trying to achieve some calculations in C programming. I have the pseudo code written down but don't know the syntax. I am reading a couple of books on C programming but still need some help.
Code:
#include <stdlib.h>
#include <stdio.h>
int transRiskLock,
transRiskAdj,
empirica;
double transRiskProb,
transRiskNorm,
fico;
//Restrict range of transRiskScore from daily Trans-Union file PRM.JUNIPER.CSREJ.D*
if (transRiskScore > 900)
transRiskLock = 900;
else
if(transRiskScore < 150)
transRiskLock = 150;
else
transRiskLock = transRiskScore;
//Force score range between 150 and 900
if (transRiskScore is missing)
transRiskLock is missing; //Handle missing values - missing transRiskScore should result in missing empirica
for each record in recordset //Loop through each record
//Transrisk normalization Phase 1: Map transRiskScore to estimated probability
if (transRiskLock >= 150 and < 257.14286)
transRiskAdj = transRiskLock – 150;
transRiskProb = 0.84415864 - (1.0488722e-005 * (transRiskAdj)2) + (3.2397817e-008 * (transRiskAdj)3);
else
if (transRiskLock >= 257.14286 and < 364.28571)
transRiskAdj = transRiskLock – 257.14286;
transRiskProb = 0.7636003 – (0.001131842 * transRiskAdj) – (2.0788434e-005 * (transRiskAdj)2) + (9.3295162e-008 * (transRiskAdj)3);
else
if (transRiskLock >= 364.28571 and < 471.42857)
transRiskAdj = transRiskLock – 364.28571;
transRiskProb = 0.51843775 – (0.0023735353 * transRiskAdj) – (6.0623834e-006 * (transRiskAdj)2) + (4.8571025e-008 * (transRiskAdj)3);
else
;
//Transrisk normalization Phase 2: Map estimated probability to EMPIRICASCORE
if (transRiskProb >= 0 and < 0.00015241579)
transRiskNorm = 820.36625 – (69591.494 * transRiskProb) – (1.312436e+008 * (transRiskProb)2) + (9.7484131e+011 * (transRiskProb)3);
else
if (transRiskProb >= 0.00015241579 and < 0.0024386526)
transRiskNorm = 810.16217 – (41660.32 * (transRiskProb - 0.00015241579)) + (7018993.8 * (transRiskProb - 0.00015241579)2) +
(1.8073426e+008 * (transRiskProb - 0.00015241579)3);
else
if (transRiskProb >= 0.0024386526) and < 0.012345679)
transRiskNorm = 753.764 – (6732.1274 * (transRiskProb - 0.0024386526)) + (638606.42 * (transRiskProb - 0.0024386526)2) -
(28380051 * (transRiskProb - 0.0024386526)3);
else
;
fico = round(transRiskNorm); //Round to zero decimals
empirica = (int) fico; //cast to integer
score_aligned = compress('+0000' || input(left(EMPIRICA),$8.)) // convert to string by adding "+" and four leading zeros, remove spaces from result
The input value is the transRiskScore here...and translate transRiskScore to Empirica score.
Please advise..
Thank You,
Madhu