tarf_monte_carlo 3.43 → 3.44

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: 88cc80746dba47969e5cdc166b6510be889fd4c090ec1415cfdc066f47e32ebc
4
- data.tar.gz: 4c7ab741260ab16d84a21659176211a466585d61be1c5adbdda62503173afa95
3
+ metadata.gz: 3983fc474126c8a34f0fce99d3f127b0057f5bf92e35949278a7018bc4c6eba0
4
+ data.tar.gz: 3071b3646c65f592b9b2dfa75a8cfee0dac798b20a4b6d9d21db8758068c2191
5
5
  SHA512:
6
- metadata.gz: 421f79a3b144d3066b04576f79b2041b24d3643322c76c4a06cca0be951069cff5e8d999cc3eaa6e2dcf62b81a321c7c8c5018aeefb1b3269d86d751d39251c7
7
- data.tar.gz: 35b4d0df1af4fa5ca3ab88617c9516543a1c6127bf49287f21f19d00c1afa8bc13489fdb67bf808bcd8ac8d1348544a75fe3132f90f5f1d7979cdb7beae47a00
6
+ metadata.gz: a457cd81fbd653af84c587af0de58495646567a9e9e0616f95226592db687e6122c109c62559867f4589bd81ae2a3bada9f79768f6ee9d1c418230868c5579bc
7
+ data.tar.gz: eada7cec1fa54069644d41817988789080d127fe003918e5a7fd9d40f24b9001bece1c9090dd0defd006a168716158c731f9e47fc00b2cedc31f92c26cf68522
@@ -196,7 +196,7 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
196
196
  double **metrics;
197
197
  if (KType == FX_AMERICAN_BARRIER_KNOCKIN_DISCRETE || KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE){
198
198
  metrics = ( double** ) malloc( 3 * sizeof(double*) );
199
- for( metric = 0; metric < 3; metric++ ) {
199
+ for( metric = 0; metric < 4; metric++ ) {
200
200
  metrics[metric] = ( double* ) malloc( DATAPOINTS * sizeof(double) );
201
201
  for(leg = 0; leg < DATAPOINTS; leg++) {
202
202
  metrics[metric][leg] = 0.0;
@@ -422,6 +422,11 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
422
422
  metrics[1][point_pos] = (knockedLeg >= 0) ? ( *( Xs_array + (knockedLeg) ) ) : 0;
423
423
  metrics[0][point_pos+1] = sim_dash[NL-1];
424
424
  metrics[1][point_pos+1] = (knockedLeg_dash >= 0) ? ( *( Xs_array + (knockedLeg_dash) ) ) : 0;
425
+
426
+ metrics[2][point_pos] = sim_pos[NL-1];
427
+ metrics[2][point_pos+1] = sim_dash_pos[NL-1];
428
+ metrics[3][point_pos] = knockedLeg;
429
+ metrics[3][point_pos+1] = knockedLeg_dash;
425
430
  }
426
431
  } else if(KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE){
427
432
  if(knockedLeg >= 0){
@@ -572,17 +577,20 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
572
577
  pvs_pos[sim_count + 1] = sim_dash_pos_sum;
573
578
  pvs_neg[sim_count] = sim_neg_sum;
574
579
  pvs_neg[sim_count + 1] = sim_dash_neg_sum;
575
- if ((point_pos < DATAPOINTS) && (sim_count % INTERVAL) == 0){
576
- metrics[2][point_pos] = sim_pos_sum;
577
- metrics[2][point_pos+1] = sim_dash_pos_sum;
578
- point_pos += 2;
579
- }
580
580
 
581
- //
582
- // increment metric storing point by 4
583
- // Note: no limit condition here
584
- //
585
- if (!(KType == FX_AMERICAN_BARRIER_KNOCKIN_DISCRETE || KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE)){
581
+
582
+ if (KType == FX_AMERICAN_BARRIER_KNOCKIN_DISCRETE || KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE){
583
+ if ((point_pos < DATAPOINTS) && (sim_count % INTERVAL) == 0){
584
+ // metrics[2][point_pos] = sim_pos_sum;
585
+ // metrics[2][point_pos+1] = sim_dash_pos_sum;
586
+ point_pos += 2;
587
+ }
588
+ }
589
+ else{
590
+ //
591
+ // increment metric storing point by 4
592
+ // Note: no limit condition here
593
+ //
586
594
  if( (sim_count + 2) % INTERVAL == 0 ) {
587
595
  // rb_p(rb_str_new2("T:"));
588
596
  // rb_p(INT2NUM(point_pos));
@@ -623,7 +631,7 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
623
631
  VALUE final_metrics = rb_ary_new();
624
632
 
625
633
  if (KType == FX_AMERICAN_BARRIER_KNOCKIN_DISCRETE || KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE){
626
- for(metric = 0; metric < 3; metric++) {
634
+ for(metric = 0; metric < 4; metric++) {
627
635
  VALUE leg_metrics = rb_ary_new();
628
636
 
629
637
  for(leg = 0; leg < DATAPOINTS; leg++) {
@@ -655,7 +663,7 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
655
663
  //
656
664
  // free your arrays from memory once you're done using them
657
665
  //
658
- int dp = (KType == FX_AMERICAN_BARRIER_KNOCKIN_DISCRETE || KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE) ? 3 : DATAPOINTS;
666
+ int dp = (KType == FX_AMERICAN_BARRIER_KNOCKIN_DISCRETE || KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE) ? 4 : DATAPOINTS;
659
667
  for(metric = 0; metric < dp; metric++) {
660
668
  free( metrics[metric] );
661
669
  }
@@ -3,5 +3,5 @@
3
3
  # gem yank tarf_monte_carlo -v 2.3
4
4
 
5
5
  module TarfMonteCarlo
6
- VERSION = "3.43"
6
+ VERSION = "3.44"
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.43'
4
+ version: '3.44'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vivek Routh