tarf_monte_carlo 3.31 → 3.36

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: 1ffba748a882648f94602365c6fe89ba13ad4012e4daa54ce87e836c757c2df7
4
- data.tar.gz: 56cf966863ed9d42802d78634b411aef7039eab87a74420d33a3dc429e5c1fa5
3
+ metadata.gz: 63dd616c6846ce9dcf226070ebd3112f3b8ecc6fe757c77bd0a7a61bb99648ec
4
+ data.tar.gz: bae66094b0d84c5b5dc47cb58f7c06aac3321a66991eee8aa267b76cfd4afbb8
5
5
  SHA512:
6
- metadata.gz: e15a1be8f1f8fcc330201ccbfd814866da27b0010428de8e8f4b449ca74b4879d62947309aedabecb86432657f5a1729f52b737518b2de147e967932beedbd96
7
- data.tar.gz: 6d3a80d0819af9cacb1f4a15beb51a3e6edf3a65f38fdb50a0b6c03d0992d73f7046b126c7cf9e6a7febb1e1430fc4fbafba04590b629c02d21e51debcd0d7d7
6
+ metadata.gz: 1f69e4376ecd39f189abc6cca12d962a002da73d25a1fe8524a68725726bb878d7c186885e8f779b7a8bc749b2182965887ade63111eaece2cdbfecc5d13c013
7
+ data.tar.gz: 9a98f27485a6d420293e99c1770611374d7bff06bb274df511099afcd8eeb1f2f0ccf9891a6cb52531cc4d62640a6516d46fb63959d2023b50c628c65c6d148a
@@ -94,7 +94,8 @@ double get_equivalent_notional(int conversion_sign, double notional, float rate)
94
94
  }
95
95
 
96
96
  double get_equivalent_rebate(int conversion_sign, double rebate, float rate){
97
- return (conversion_sign == 1) ? (rebate * rate) : rebate;
97
+ double total = (conversion_sign == 1) ? (rebate * rate) : rebate;
98
+ return (-1 * total);
98
99
  }
99
100
 
100
101
  // main method for running monte carlo simulation from sidekiq worker/outside method
@@ -193,7 +194,6 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
193
194
  // first create a 1-D array of pointers, and then, for each array entry, create another 1-D array.
194
195
  //
195
196
  double **metrics;
196
- double data[4][NL];
197
197
  metrics = ( double** ) malloc( DATAPOINTS * sizeof(double*) );
198
198
  for( metric = 0; metric < DATAPOINTS; metric++ ) {
199
199
  metrics[metric] = ( double* ) malloc( NL * sizeof(double) );
@@ -217,10 +217,6 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
217
217
  sim_dash[leg] = 0.0;
218
218
  sim_dash_pos[leg] = 0.0;
219
219
  sim_dash_neg[leg] = 0.0;
220
- data[0][leg] = 0.0;
221
- data[1][leg] = 0.0;
222
- data[2][leg] = 0.0;
223
- data[3][leg] = 0.0;
224
220
  }
225
221
 
226
222
  int knockedLeg = -1;
@@ -374,8 +370,6 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
374
370
  sim[leg] = profit_loss;
375
371
  sim_dash[leg] = profit_loss_dash;
376
372
 
377
- data[0][leg] = sim[leg];
378
- data[1][leg] = sim_dash[leg];
379
373
  //
380
374
  // Store spot and spot dash
381
375
  //
@@ -392,7 +386,6 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
392
386
  Spot_dash = S;
393
387
  }
394
388
  }
395
-
396
389
  // legs loop end
397
390
  // start from the Knock value
398
391
  double ko_so_far = K, ko_so_far_dash = K;
@@ -411,9 +404,6 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
411
404
  else{
412
405
  sim_dash_pos[NL-1] = get_equivalent_rebate(rebate_conversion_sign, ( *( Rebate_array + 0 ) ), sim_dash[NL-1]);
413
406
  }
414
-
415
- data[2][NL-1] = sim_pos[NL-1];
416
- data[3][NL-1] = sim_dash_pos[NL-1];
417
407
  } else if(KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE){
418
408
  if(knockedLeg >= 0){
419
409
  sim_pos[knockedLeg] = get_equivalent_rebate(rebate_conversion_sign, ( *( Rebate_array + knockedLeg ) ), sim[knockedLeg]);
@@ -595,11 +585,11 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
595
585
  //
596
586
  // rb_p(rb_str_new2("Converting metrics"));
597
587
  VALUE final_metrics = rb_ary_new();
598
- for(metric = 0; metric < 5; metric++) {
588
+ for(metric = 0; metric < DATAPOINTS; metric++) {
599
589
  VALUE leg_metrics = rb_ary_new();
600
590
 
601
591
  for(leg = 0; leg < NL; leg++) {
602
- rb_ary_push( leg_metrics, DBL2NUM( data[metric][leg] ) );
592
+ rb_ary_push( leg_metrics, DBL2NUM( metrics[metric][leg] ) );
603
593
  }
604
594
 
605
595
  rb_ary_push(final_metrics, leg_metrics);
@@ -3,5 +3,5 @@
3
3
  # gem yank tarf_monte_carlo -v 2.3
4
4
 
5
5
  module TarfMonteCarlo
6
- VERSION = "3.31"
6
+ VERSION = "3.36"
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tarf_monte_carlo
3
3
  version: !ruby/object:Gem::Version
4
- version: '3.31'
4
+ version: '3.36'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vivek Routh
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-03 00:00:00.000000000 Z
11
+ date: 2020-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler