tarf_monte_carlo 3.45 → 3.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9686343290fbaf7a6efc80b914581c01c3b8b6c3fae2ee230143beb545d48700
4
- data.tar.gz: 83b9cd1f3a9aecab8068ca3f95b80d47aebc3d6bb4a3eaa2fa830eabcd826fe5
3
+ metadata.gz: 189ce30c759cdc40444b5ffc5443e8d93680adb392be409beb2f8d6445e1f667
4
+ data.tar.gz: 93b441a9d9481e0595b9b029e28792d2a4bf08299b0bd0ca3396a680bb85184c
5
5
  SHA512:
6
- metadata.gz: 7dbaceded908b6a57c4fc569cc5a9858dce6e1468cd9966b35bc5e79bee00c43ac736e7c56baaf54bd5eb3aec8bc43b2631b8afae32ad8fa0c7449568e1e11bc
7
- data.tar.gz: c0efcc18cab06eb9d13da7d427d0523155e33cad5e2ea2064be63822afc3ead1617e02ed10856967534985d2b04b0ca6cd9559ff6aa9c0a79922103364b70cc4
6
+ metadata.gz: 61030c67b76c62f00b682f135f753d4d82d5fb91e3a5c822e57bf865138befd9b19d574ed9a8c70140fc7ea5aa7a14067a34a69d46ad663165d15849d587d17b
7
+ data.tar.gz: a2844c3dd6b4a9591cc6bed56edc3a896e8b83b162d7db9f5546573fe8d2e1fcf1bf2338e125a80145835aebfa2f6b7c55bb8f970f5db47e0317f682e242d3fc
@@ -45,6 +45,7 @@
45
45
  #define FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE 14
46
46
 
47
47
  #define DATAPOINTS 200 // data for plotting
48
+ #define BARRIER_DP 4 // data for plotting
48
49
  #define INTERVAL 50
49
50
  #define SIM_LIMIT 196 // 196 + 4 = 200 simulations nedded
50
51
 
@@ -195,8 +196,8 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
195
196
  //
196
197
  double **metrics;
197
198
  if (KType == FX_AMERICAN_BARRIER_KNOCKIN_DISCRETE || KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE){
198
- metrics = ( double** ) malloc( 3 * sizeof(double*) );
199
- for( metric = 0; metric < 4; metric++ ) {
199
+ metrics = ( double** ) malloc( BARRIER_DP * sizeof(double*) );
200
+ for( metric = 0; metric < BARRIER_DP; metric++ ) {
200
201
  metrics[metric] = ( double* ) malloc( DATAPOINTS * sizeof(double) );
201
202
  for(leg = 0; leg < DATAPOINTS; leg++) {
202
203
  metrics[metric][leg] = 0.0;
@@ -631,7 +632,7 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
631
632
  VALUE final_metrics = rb_ary_new();
632
633
 
633
634
  if (KType == FX_AMERICAN_BARRIER_KNOCKIN_DISCRETE || KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE){
634
- for(metric = 0; metric < 4; metric++) {
635
+ for(metric = 0; metric < BARRIER_DP; metric++) {
635
636
  VALUE leg_metrics = rb_ary_new();
636
637
 
637
638
  for(leg = 0; leg < DATAPOINTS; leg++) {
@@ -663,11 +664,11 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
663
664
  //
664
665
  // free your arrays from memory once you're done using them
665
666
  //
666
- // int dp = (KType == FX_AMERICAN_BARRIER_KNOCKIN_DISCRETE || KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE) ? 4 : DATAPOINTS;
667
- // for(metric = 0; metric < dp; metric++) {
668
- // free( metrics[metric] );
669
- // }
670
- // free(metrics);
667
+ int dp = (KType == FX_AMERICAN_BARRIER_KNOCKIN_DISCRETE || KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE) ? BARRIER_DP : DATAPOINTS;
668
+ for(metric = 0; metric < dp; metric++) {
669
+ free( metrics[metric] );
670
+ }
671
+ free(metrics);
671
672
 
672
673
  return final_pvs;
673
674
  }
@@ -3,5 +3,5 @@
3
3
  # gem yank tarf_monte_carlo -v 2.3
4
4
 
5
5
  module TarfMonteCarlo
6
- VERSION = "3.45"
6
+ VERSION = "3.46"
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tarf_monte_carlo
3
3
  version: !ruby/object:Gem::Version
4
- version: '3.45'
4
+ version: '3.46'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vivek Routh