aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--R/Makefile7
-rw-r--r--R/lossdistrib.c10
2 files changed, 10 insertions, 7 deletions
diff --git a/R/Makefile b/R/Makefile
index 4b05d836..8f086635 100644
--- a/R/Makefile
+++ b/R/Makefile
@@ -1,5 +1,8 @@
+CC=gcc
+CFLAGS=-O2 -march=native
+
lossdistrib.so: lossdistrib.o
- gcc -shared -o lossdistrib.so lossdistrib.o -L/usr/lib/R/lib -lR -llapack -lblas
+ $(CC) $(CFLAGS) -shared -o lossdistrib.so lossdistrib.o -L/usr/lib/R/lib -lR -llapack -lblas
lossdistrib.o: lossdistrib.c
- gcc -I/usr/include/R -fopenmp -fpic -c lossdistrib.c
+ $(CC) $(CFLAGS) -Wall -I/usr/include/R -fopenmp -fpic -c lossdistrib.c
diff --git a/R/lossdistrib.c b/R/lossdistrib.c
index 74689653..75929d51 100644
--- a/R/lossdistrib.c
+++ b/R/lossdistrib.c
@@ -189,7 +189,7 @@ void lossdistrib_truncated(double *p, int *np, double *w, double *S, int *N,
q the loss distribution */
int i, j, d1, d2, M;
- double lu, d, p1, p2, sum;
+ double lu, d, p1, p2;
double *q1, *q2;
lu = 1./(*N-1);
@@ -665,7 +665,7 @@ void fitprob(double* Z, double* w, int* nZ, double* rho, double* p0, double* res
}
*result = p;
}
- free(q);
+ Free(q);
}
void stochasticrecov(double* R, double* Rtilde, double* Z, double* w, int* nZ,
@@ -788,7 +788,7 @@ void BClossdist(double *defaultprob, int *dim1, int *dim2,
g = defaultprob[j + (*dim1) * t];
gshocked[j+(*dim1)*i] = shockprob(g, rho[j], Z[i], 0);
Sshocked[j+(*dim1)*i] = shockseverity(1-recov[j], Z[i], rho[j], g);
- Rshocked[j+(*dim1)*i] = 1 - Sshocked[j];
+ Rshocked[j+(*dim1)*i] = 1 - Sshocked[j+(*dim1)*i];
}
lossdistrib_blas(gshocked + (*dim1) * i, dim1, issuerweights, Sshocked + (*dim1)*i, N, defaultflag,
Lw + i * (*N));
@@ -801,6 +801,6 @@ void BClossdist(double *defaultprob, int *dim1, int *dim2,
Free(gshocked);
Free(Rshocked);
Free(Sshocked);
- free(Lw);
- free(Rw);
+ Free(Lw);
+ Free(Rw);
}