@frontlinesystems/rason-mcp-server 2026.5.0 → 2026.5.1
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.
- package/LICENSE +35 -35
- package/README.md +1 -1
- package/examples/EXAMPLES_REFERENCE.md +128 -128
- package/examples/calculation/DMNExamples/DMN Box Fun with typeDef result.json +53 -53
- package/examples/calculation/DMNExamples/DMN Context example.json +69 -69
- package/examples/calculation/DMNExamples/DMN DT with typeDef result.json +43 -43
- package/examples/calculation/DMNExamples/FEEL Date Time example.json +28 -28
- package/examples/calculation/DMNExamples/FEEL For iteration example.json +66 -66
- package/examples/calculation/DMNExamples/FEEL For with two indices.json +15 -15
- package/examples/calculation/DMNExamples/FEEL For with typeDef result.json +88 -88
- package/examples/calculation/DMNExamples/FEEL If Then Else example.json +25 -25
- package/examples/calculation/DMNExamples/FEEL List example.json +37 -37
- package/examples/calculation/DMNExamples/FEEL List operator.json +17 -17
- package/examples/calculation/DMNExamples/FEEL List with typeDef collection.json +36 -36
- package/examples/calculation/DMNExamples/FEEL Some or Every example.json +65 -65
- package/examples/calculation/DecisionTables/DT Datasource example.json +52 -52
- package/examples/calculation/DecisionTables/DT Date and Time examples.json +91 -91
- package/examples/calculation/DecisionTables/DT Expression example.json +32 -32
- package/examples/calculation/DecisionTables/DT Hit Policy examples.json +136 -136
- package/examples/calculation/DecisionTables/DT Loan Recommend model.json +81 -81
- package/examples/calculation/DecisionTables/DT Loan Strategy Model and Predictive CSV-XML.json +218 -218
- package/examples/calculation/DecisionTables/DT Loan Strategy model and Datasource.json +286 -286
- package/examples/calculation/DecisionTables/DT Loan Strategy model and Predictive.json +203 -203
- package/examples/calculation/DecisionTables/DT Loan Strategy model by scratch.json +214 -214
- package/examples/calculation/DecisionTables/DT Output Order example.json +39 -39
- package/examples/calculation/DecisionTables/DT Unique example.json +38 -38
- package/examples/calculation/TypeDefinitions/TypeDefCF.json +64 -64
- package/examples/calculation/TypeDefinitions/TypeDefDT.json +57 -57
- package/examples/datamining/AffinityAnalysis/AssociationRules.json +51 -51
- package/examples/datamining/Classification/DecisionTree.json +90 -90
- package/examples/datamining/Classification/DiscriminantAnalysis.json +81 -81
- package/examples/datamining/Classification/Ensembles/Bagging.json +66 -66
- package/examples/datamining/Classification/Ensembles/Boosting.json +67 -67
- package/examples/datamining/Classification/Ensembles/RandomTrees.json +91 -91
- package/examples/datamining/Classification/FindBestModel.json +86 -86
- package/examples/datamining/Classification/LogisticRegression.json +82 -82
- package/examples/datamining/Classification/NaiveBayes.json +78 -78
- package/examples/datamining/Classification/NearestNeighbors.json +84 -84
- package/examples/datamining/Classification/NeuralNetwork.json +92 -92
- package/examples/datamining/Clustering/Hierarchical.json +54 -54
- package/examples/datamining/Clustering/KMeans.json +71 -71
- package/examples/datamining/DataSources/DelimitedFile.json +49 -49
- package/examples/datamining/DataSources/JSONFile.json +49 -49
- package/examples/datamining/DataSources/MSAccessDatabase.json +49 -49
- package/examples/datamining/DataSources/MSExcelTable.json +50 -50
- package/examples/datamining/DataSources/MSSQLDatabase.json +49 -49
- package/examples/datamining/DataSources/ODATATable.json +49 -49
- package/examples/datamining/DataSources/ODBCDatabase.json +49 -49
- package/examples/datamining/FeatureSelection/LinearWrapping.json +53 -53
- package/examples/datamining/FeatureSelection/LogisticWrapping.json +56 -56
- package/examples/datamining/FeatureSelection/Univariate.json +78 -78
- package/examples/datamining/Regression/DecisionTree.json +82 -82
- package/examples/datamining/Regression/Ensembles/Bagging.json +62 -62
- package/examples/datamining/Regression/Ensembles/Boosting.json +62 -62
- package/examples/datamining/Regression/Ensembles/RandomTrees.json +78 -78
- package/examples/datamining/Regression/FindBestModel.json +86 -86
- package/examples/datamining/Regression/LinearRegression.json +124 -124
- package/examples/datamining/Regression/NearestNeighbors.json +77 -77
- package/examples/datamining/Regression/NeuralNetwork.json +82 -82
- package/examples/datamining/Scoring/JSONClassifier.json +62 -62
- package/examples/datamining/Scoring/JSONClassifierNN.json +62 -62
- package/examples/datamining/Scoring/JSONClusterizer.json +37 -37
- package/examples/datamining/Scoring/JSONForecaster.json +49 -49
- package/examples/datamining/Scoring/JSONLinearRegression.json +56 -56
- package/examples/datamining/Scoring/JSONPCA.json +41 -41
- package/examples/datamining/Scoring/JSONRegressor.json +56 -56
- package/examples/datamining/Scoring/JSONTransformer.json +38 -38
- package/examples/datamining/Scoring/PMMLClassifier.json +42 -42
- package/examples/datamining/Scoring/PMMLForecaster.json +43 -43
- package/examples/datamining/Scoring/PMMLRegressor.json +38 -38
- package/examples/datamining/Scoring/PMMLTransformer.json +38 -38
- package/examples/datamining/Simulation/LinearRegressionSimulation.json +117 -117
- package/examples/datamining/Simulation/SyntheticDataGeneration.json +108 -108
- package/examples/datamining/Simulation/pmml-risk-scoring.json +62 -62
- package/examples/datamining/Summarizer/Summarization.json +54 -54
- package/examples/datamining/TextMining/LatentSemanticAnalysis.json +51 -51
- package/examples/datamining/TextMining/TfIdf-FileData.json +65 -65
- package/examples/datamining/TextMining/TfIdf-InlineData.json +55 -55
- package/examples/datamining/TimeSeries/AddHoltWinters.json +79 -79
- package/examples/datamining/TimeSeries/Arima.json +74 -74
- package/examples/datamining/TimeSeries/DoubleExponential.json +65 -65
- package/examples/datamining/TimeSeries/Exponential.json +64 -64
- package/examples/datamining/TimeSeries/LagAnalysis.json +48 -48
- package/examples/datamining/TimeSeries/MovingAverage.json +65 -65
- package/examples/datamining/TimeSeries/MulHoltWinters.json +65 -65
- package/examples/datamining/TimeSeries/NoTrendHoltWinters.json +65 -65
- package/examples/datamining/Transformation/Binning.json +69 -69
- package/examples/datamining/Transformation/CanonicalVariateAnalysis.json +47 -47
- package/examples/datamining/Transformation/CategoryReduction.json +51 -51
- package/examples/datamining/Transformation/Factorization.json +50 -50
- package/examples/datamining/Transformation/MissingDataHandling.json +83 -83
- package/examples/datamining/Transformation/OneHotEncoding-DataInline.json +54 -54
- package/examples/datamining/Transformation/OneHotEncoding-DatainFile.json +48 -48
- package/examples/datamining/Transformation/PartitionTimeSeries.json +48 -48
- package/examples/datamining/Transformation/Partitioning-DF.json +72 -72
- package/examples/datamining/Transformation/Partitioning.json +46 -46
- package/examples/datamining/Transformation/PartitioningWithOversampling-DF.json +65 -65
- package/examples/datamining/Transformation/PartitioningWithOversampling.json +44 -44
- package/examples/datamining/Transformation/PrincipalComponentsAnalysis.json +52 -52
- package/examples/datamining/Transformation/Rescaling.json +67 -67
- package/examples/datamining/Transformation/Sampling.json +43 -43
- package/examples/datamining/Transformation/StratifiedSampling.json +46 -46
- package/examples/flow/SQLServerTransform.json +260 -260
- package/examples/flow/dm-calc-pipeline.json +277 -277
- package/examples/flow/dm-pipeline-simulation.json +113 -113
- package/examples/flow/opt-sim-pipeline.json +159 -159
- package/examples/flow/sim-dm-pipeline.json +106 -106
- package/examples/flow/sim-sim-pipeline.json +136 -136
- package/examples/index.json +4678 -4678
- package/examples/{Optimization → optimization}/Conic/AirlineHubConic.json +111 -111
- package/examples/{Optimization → optimization}/Conic/AirlineHubConic2.json +108 -108
- package/examples/{Optimization → optimization}/Conic/AirlineHubConic3.json +111 -111
- package/examples/{Optimization → optimization}/Conic/AirlineHubConic4.json +99 -99
- package/examples/{Optimization → optimization}/Conic/AirlineHubConic5.json +101 -101
- package/examples/{Optimization → optimization}/DataBinding/ProductMixCsv.json +81 -81
- package/examples/{Optimization → optimization}/DataBinding/ProductMixCsv4.json +96 -96
- package/examples/{Optimization → optimization}/DataBinding/ProductMixExcel.json +73 -73
- package/examples/{Optimization → optimization}/DataBinding/ProductMixExcel1.json +86 -86
- package/examples/{Optimization → optimization}/DataBinding/ProductMixExcel11.json +108 -108
- package/examples/{Optimization → optimization}/DataBinding/ProductMixExcel2.json +77 -77
- package/examples/{Optimization → optimization}/DataBinding/ProductMixTab.json +89 -89
- package/examples/{Optimization → optimization}/DataBinding/ProductMixTab1.json +73 -73
- package/examples/{Optimization → optimization}/DataBinding/ProductMixTab2.json +77 -77
- package/examples/{Optimization → optimization}/Linear/Inventory.json +199 -199
- package/examples/{Optimization → optimization}/Linear/Matop.json +119 -119
- package/examples/{Optimization → optimization}/Linear/ProductMix.json +97 -97
- package/examples/{Optimization → optimization}/Linear/ProductMix2.json +72 -72
- package/examples/{Optimization → optimization}/Linear/ProductMix3.json +49 -49
- package/examples/{Optimization → optimization}/Linear/ProductMix4.json +56 -56
- package/examples/{Optimization → optimization}/Linear/ProductMixCsv1.json +106 -106
- package/examples/{Optimization → optimization}/Linear/ProductMixCsv2.json +106 -106
- package/examples/{Optimization → optimization}/Linear/ProductMixSQL11.json +82 -82
- package/examples/{Optimization → optimization}/Linear/Rowop.json +126 -126
- package/examples/{Optimization → optimization}/NonLinear/AirlineHub.json +63 -63
- package/examples/{Optimization → optimization}/NonLinear/AirlineHub2.json +47 -47
- package/examples/{Optimization → optimization}/NonLinear/AirlineHub3.json +47 -47
- package/examples/{Optimization → optimization}/NonSmooth/Inventory2.json +159 -159
- package/examples/{Optimization → optimization}/Quadratic/PortfolioOpt.json +55 -55
- package/examples/{Optimization → optimization}/Quadratic/PortfolioOpt2.json +65 -65
- package/examples/{Optimization → optimization}/WithUncertainty/GasCompanyChance.json +78 -78
- package/examples/{Optimization → optimization}/WithUncertainty/GasCompanyRecourse.json +78 -78
- package/examples/{Optimization → optimization}/WithUncertainty/ProjectSelect.json +77 -77
- package/examples/{Optimization → optimization}/WithUncertainty/ProjectSelect2.json +81 -81
- package/examples/{Optimization → optimization}/WithUncertainty/ProjectSelect3.json +84 -84
- package/examples/{Optimization → optimization}/WithUncertainty/ProjectSelect4.json +74 -74
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/DataFiltering/ListwithFilter.json +52 -52
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ProductMix5.json +57 -57
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/compoundWhileStatement.json +35 -35
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ifThenElseStatement.json +33 -33
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/nestedLoop.json +25 -25
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/ParallelArray.json +47 -47
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/indexedArray.json +69 -69
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/nonParallelArray.json +49 -49
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/sumAggregateExample.json +337 -337
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/tsp.json +61 -61
- package/examples/rason-features/BoxIterators/Box_Fun_Loop_Iter_Sim_RASON.json +190 -190
- package/examples/rason-features/BoxIterators/Box_Fun_Loop_Sim_RASON.json +75 -75
- package/examples/rason-features/BoxIterators/Box_Fun_Sim_RASON.json +108 -108
- package/examples/rason-features/BoxIterators/Box_Iter_SIM_RASON.json +68 -68
- package/examples/rason-features/BoxIterators/Box_Iterator_Calc_Loop.json +183 -183
- package/examples/rason-features/BoxIterators/Box_Iterator_with_typeDef_partial.json +79 -79
- package/examples/rason-features/BoxLambdaExamples/BoxFunOptimize.json +154 -154
- package/examples/rason-features/BoxLambdaExamples/BoxFunSimulate.json +118 -118
- package/examples/rason-features/BoxLambdaExamples/LambdaFunOptimize.json +142 -142
- package/examples/rason-features/BoxLambdaExamples/LambdaFunSimulate.json +81 -81
- package/examples/rason-features/ReferenceGuide/RGFirehouseLocation.json +69 -69
- package/examples/rason-features/ReferenceGuide/RGFirehouseLocationConic.json +113 -113
- package/examples/rason-features/ReferenceGuide/RGProductMixCsv1.json +107 -107
- package/examples/rason-features/ReferenceGuide/RGProductMixExcel11.json +117 -117
- package/examples/rason-features/ReferenceGuide/RGProductMixSQL11.json +108 -108
- package/examples/rason-features/UserGuide/UGAirlineHubCSV.json +67 -67
- package/examples/rason-features/UserGuide/UGForecast.json +50 -50
- package/examples/rason-features/UserGuide/UGProductMix1.json +48 -48
- package/examples/rason-features/UserGuide/UGProductMix2.json +48 -48
- package/examples/rason-features/UserGuide/UGProductMixTab1.json +67 -67
- package/examples/rason-features/UserGuide/UGProductMixTab2.json +76 -76
- package/examples/rason-features/UserGuide/UGProductMixTab3.json +66 -66
- package/examples/rason-features/UserGuide/UGProductMixTab4.json +70 -70
- package/examples/rason-features/UserGuide/UGProductMixTab5.json +67 -67
- package/examples/rason-features/UserGuide/UGProjectSelect0.json +91 -91
- package/examples/rason-features/UserGuide/UGProjectSelect1.json +74 -74
- package/examples/rason-features/UserGuide/UGProjectSelect2.json +74 -74
- package/examples/rason-features/UserGuide/UGYieldManagement1.json +61 -61
- package/examples/rason-features/UserGuide/UGYieldManagement2.json +61 -61
- package/examples/rason-features/UserGuide/UGYieldManagement3.json +63 -63
- package/examples/{Simulation → simulation}/CandyStoreSalesUsingSIP.json +147 -147
- package/examples/{Simulation → simulation}/CollegeFundGrowth1.json +423 -423
- package/examples/{Simulation → simulation}/CollegeFundGrowth1SIPModel.json +27 -27
- package/examples/{Simulation → simulation}/CollegeFundGrowth2.json +415 -415
- package/examples/{Simulation → simulation}/CollegeFundGrowthSIP.json +401 -401
- package/examples/{Simulation → simulation}/GBMSimulationModel.json +236 -236
- package/examples/{Simulation → simulation}/YieldManagement(Sim).json +69 -69
- package/examples/{Simulation → simulation}/YieldManagement2(Sim).json +72 -72
- package/out/index.cjs +38 -38
- package/package.json +2 -2
|
@@ -1,183 +1,183 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "Calc_Box_Fcn_and_Box_Iters",
|
|
3
|
-
"modelDescription": "This example includes 1 box function and 4 box iterators. Each one calculates the monthly payments of 3 loans.",
|
|
4
|
-
"modelType": "calculation",
|
|
5
|
-
"boxFunctions": {
|
|
6
|
-
"comment": "Box Function that calculates the monthly payment of 3 loans. This box function accepts 3 inputs: p - principal, r - interest rate and n - loan term length. All inputs must be numbers (see inputTypes). The returned result will also be a number (see resultType). See loan1Pmt, loan2Pmt and loan3Pmt, under formulas (below), to see how to pass the arguments to the function.",
|
|
7
|
-
"funMonthlyPayment": {
|
|
8
|
-
"inputs": [ "p", "r", "n" ],
|
|
9
|
-
"inputTypes": [ "number", "number", "number" ],
|
|
10
|
-
"language": "Excel",
|
|
11
|
-
"resultType": "number",
|
|
12
|
-
"body": {
|
|
13
|
-
"payment": {
|
|
14
|
-
"formula": "(p * r / 12) / (1 - (1 + r / 12)^-n)"
|
|
15
|
-
},
|
|
16
|
-
"fee": {
|
|
17
|
-
"formula": "feePercent * payment"
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
"result": "payment + fee"
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
"boxIterators": {
|
|
24
|
-
"comment": "There are 4 box iterators: iterMonthlyPayment (example of a box iterator of type FOR, using language EXCEL), iterPaymentSome (example of a box iterator of type SOME) iterPaymentEvery (example of a box iterator of type EVERY) and iterPaymentFEEL (example of a box iterator using FEEL Language)",
|
|
25
|
-
"iterMonthlyPayment": {
|
|
26
|
-
"comment": "This box iterator uses language Excel and type FOR to calculate the monthly payment for 3 loans. A FOR type of box iterator executes a traditional For Loop. This iterator accepts three inputs, amount[i], rate[i] and term[i] and returns the monthly payment plus a small fee.",
|
|
27
|
-
"language": "Excel",
|
|
28
|
-
"returnType": "",
|
|
29
|
-
"for": "i",
|
|
30
|
-
"in": "1..rows(amount)",
|
|
31
|
-
"body": {
|
|
32
|
-
"payment": {
|
|
33
|
-
"formula": "(amount[i] * rate[i] /12) / (1 - (1 + rate[i]/12)^-term[i])"
|
|
34
|
-
},
|
|
35
|
-
"fee": {
|
|
36
|
-
"formula": "feePercent * payment"
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
"return": "payment + fee"
|
|
40
|
-
},
|
|
41
|
-
"iterPaymentSome": {
|
|
42
|
-
"comment": "This box iterator uses language Excel and type SOME. The SOME type of box iterator, verifies if at least one computed element of the loop is True. If so, the box iterator will return True. This iterator accepts three inputs, amount[i], rate[i] and term[i] and returns the monthly payment plus a small fee.",
|
|
43
|
-
"language": "Excel",
|
|
44
|
-
"returnType": "",
|
|
45
|
-
"some": "i",
|
|
46
|
-
"in": "1..rows(amount)",
|
|
47
|
-
"body": {
|
|
48
|
-
"payment": {
|
|
49
|
-
"formula": "(amount[i] * rate[i] /12) / (1 - (1 + rate[i]/12)^-term[i])"
|
|
50
|
-
},
|
|
51
|
-
"fee": {
|
|
52
|
-
"formula": "feePercent * payment"
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
"return": "(payment + fee) > 2900"
|
|
56
|
-
},
|
|
57
|
-
"iterPaymentEvery": {
|
|
58
|
-
"comment": "This box iterator uses language Excel and EVERY. The EVERY type of box iterator, verifies if at all computed elements of the loop are True. If so, the box iterator will return True. This iterator accepts three inputs, amount[i], rate[i] and term[i] and returns the monthly payment plus a small fee.",
|
|
59
|
-
"language": "Excel",
|
|
60
|
-
"returnType": "",
|
|
61
|
-
"every": "i",
|
|
62
|
-
"in": "1..rows(amount)",
|
|
63
|
-
"body": {
|
|
64
|
-
"payment": {
|
|
65
|
-
"formula": "(amount[i] * rate[i] /12) / (1 - (1 + rate[i]/12)^-term[i])"
|
|
66
|
-
},
|
|
67
|
-
"fee": {
|
|
68
|
-
"formula": "feePercent * payment"
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
"return": "(payment + fee) > 2900"
|
|
72
|
-
},
|
|
73
|
-
"iterPaymentFeel": {
|
|
74
|
-
"comment": "This box iterator uses language FEEL and type FOR. The FOR type of box iterator executes a traditional FOR loop. This iterator accepts three inputs, amount[i], rate[i] and term[i] and returns the monthly payment plus a small fee.",
|
|
75
|
-
"language": "Feel",
|
|
76
|
-
"returnType": "",
|
|
77
|
-
"for": "rate",
|
|
78
|
-
"in": "[0.0375, 0.0475, 0.0575]",
|
|
79
|
-
"body": {
|
|
80
|
-
"payment": {
|
|
81
|
-
"formula": "(600000 * rate /12) / (1 - (1 + rate/12)**-360)"
|
|
82
|
-
},
|
|
83
|
-
"fee": {
|
|
84
|
-
"formula": "0.01 * payment"
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
"return": "payment + fee"
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
"data": {
|
|
91
|
-
"comment": "Holds all constant data arrays.",
|
|
92
|
-
"feePercent": {
|
|
93
|
-
"comment": "fee percentage",
|
|
94
|
-
"value": 0.01
|
|
95
|
-
},
|
|
96
|
-
"loan1Princ": {
|
|
97
|
-
"comment": "Loan 1 principal",
|
|
98
|
-
"value": 600000
|
|
99
|
-
},
|
|
100
|
-
"loan1Rate": {
|
|
101
|
-
"comment": "Loan 1 interest rate",
|
|
102
|
-
"value": 0.0375
|
|
103
|
-
},
|
|
104
|
-
"loan1Term": {
|
|
105
|
-
"comment": "Loan 1 term",
|
|
106
|
-
"value": 360
|
|
107
|
-
},
|
|
108
|
-
"loan2Princ": {
|
|
109
|
-
"comment": "Loan 2 principal",
|
|
110
|
-
"value": 550000
|
|
111
|
-
},
|
|
112
|
-
"loan2Rate": {
|
|
113
|
-
"comment": "Loan 2 interest rate",
|
|
114
|
-
"value": 0.0475
|
|
115
|
-
},
|
|
116
|
-
"loan2Term": {
|
|
117
|
-
"comment": "Loan 2 term",
|
|
118
|
-
"value": 360
|
|
119
|
-
},
|
|
120
|
-
"loan3Princ": {
|
|
121
|
-
"comment": "Loan 3 principal",
|
|
122
|
-
"value": 500000
|
|
123
|
-
},
|
|
124
|
-
"loan3Rate": {
|
|
125
|
-
"comment": "Loan 3 interest rate",
|
|
126
|
-
"value": 0.0575
|
|
127
|
-
},
|
|
128
|
-
"loan3Term": {
|
|
129
|
-
"comment": "Loan 3 term",
|
|
130
|
-
"value": 360
|
|
131
|
-
},
|
|
132
|
-
"amount": {
|
|
133
|
-
"comment": "Array containing principal amounts for all three loans. Loan 1 = amount[1] = 600000",
|
|
134
|
-
"value": [ 600000, 550000, 500000 ]
|
|
135
|
-
},
|
|
136
|
-
"rate": {
|
|
137
|
-
"comment": "Array containing interest rate amounts for all three loans. Interest rate for loan 1 = rate[1] = 0.0375",
|
|
138
|
-
"value": [ 0.0375, 0.0475, 0.0575 ]
|
|
139
|
-
},
|
|
140
|
-
"term": {
|
|
141
|
-
"comment": "Array containing term lengths for all three loans. Loan 1 term = term[1] = 360",
|
|
142
|
-
"value": [ 360, 360, 360 ]
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
"formulas": {
|
|
146
|
-
"comment": "Contains all formulas calling the box function and box iterators.",
|
|
147
|
-
"loan1Pmt": {
|
|
148
|
-
"comment": "Calls the funMonthlyPayment box function with three arguments, loan1Princ, loan1Rate and loan1Term, to calculate the monthly payment for loan 1.",
|
|
149
|
-
"formula": "funMonthlyPayment(loan1Princ, loan1Rate, loan1Term)",
|
|
150
|
-
"finalValue": []
|
|
151
|
-
},
|
|
152
|
-
"loan2Pmt": {
|
|
153
|
-
"comment": "Calls the funMonthlyPayment box function with three arguments, loan2Princ, loan2Rate and loan2Term, to calculate the monthly payment for loan 2.",
|
|
154
|
-
"formula": "funMonthlyPayment(loan2Princ, loan2Rate, loan2Term)",
|
|
155
|
-
"finalValue": []
|
|
156
|
-
},
|
|
157
|
-
"loan3Pmt": {
|
|
158
|
-
"comment": "Calls the funMonthlyPayment box function with three arguments, loan3Princ, loan3Rate and loan3Term, to calculate the monthly payment for loan 3.",
|
|
159
|
-
"formula": "funMonthlyPayment(loan3Princ, loan3Rate, loan3Term)",
|
|
160
|
-
"finalValue": []
|
|
161
|
-
},
|
|
162
|
-
"monthlyLoanPMT": {
|
|
163
|
-
"comment": "Calls the iterMonthlyPayment box iterator.",
|
|
164
|
-
"formula": "iterMonthlyPayment()",
|
|
165
|
-
"finalValue": []
|
|
166
|
-
},
|
|
167
|
-
"boxIterTypeSome": {
|
|
168
|
-
"comment": "Calls the iterPaymentSome box iterator.",
|
|
169
|
-
"formula": "iterPaymentSome()",
|
|
170
|
-
"finalValue": []
|
|
171
|
-
},
|
|
172
|
-
"boxIterTypeEvery": {
|
|
173
|
-
"comment": "Calls the iterPaymentEvery box iterator.",
|
|
174
|
-
"formula": "iterPaymentEvery()",
|
|
175
|
-
"finalValue": []
|
|
176
|
-
},
|
|
177
|
-
"boxIterLangFEEL": {
|
|
178
|
-
"comment": "Calls the iterPaymentFeel box iterator.",
|
|
179
|
-
"formula": "iterPaymentFeel()",
|
|
180
|
-
"finalValue": []
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "Calc_Box_Fcn_and_Box_Iters",
|
|
3
|
+
"modelDescription": "This example includes 1 box function and 4 box iterators. Each one calculates the monthly payments of 3 loans.",
|
|
4
|
+
"modelType": "calculation",
|
|
5
|
+
"boxFunctions": {
|
|
6
|
+
"comment": "Box Function that calculates the monthly payment of 3 loans. This box function accepts 3 inputs: p - principal, r - interest rate and n - loan term length. All inputs must be numbers (see inputTypes). The returned result will also be a number (see resultType). See loan1Pmt, loan2Pmt and loan3Pmt, under formulas (below), to see how to pass the arguments to the function.",
|
|
7
|
+
"funMonthlyPayment": {
|
|
8
|
+
"inputs": [ "p", "r", "n" ],
|
|
9
|
+
"inputTypes": [ "number", "number", "number" ],
|
|
10
|
+
"language": "Excel",
|
|
11
|
+
"resultType": "number",
|
|
12
|
+
"body": {
|
|
13
|
+
"payment": {
|
|
14
|
+
"formula": "(p * r / 12) / (1 - (1 + r / 12)^-n)"
|
|
15
|
+
},
|
|
16
|
+
"fee": {
|
|
17
|
+
"formula": "feePercent * payment"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"result": "payment + fee"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"boxIterators": {
|
|
24
|
+
"comment": "There are 4 box iterators: iterMonthlyPayment (example of a box iterator of type FOR, using language EXCEL), iterPaymentSome (example of a box iterator of type SOME) iterPaymentEvery (example of a box iterator of type EVERY) and iterPaymentFEEL (example of a box iterator using FEEL Language)",
|
|
25
|
+
"iterMonthlyPayment": {
|
|
26
|
+
"comment": "This box iterator uses language Excel and type FOR to calculate the monthly payment for 3 loans. A FOR type of box iterator executes a traditional For Loop. This iterator accepts three inputs, amount[i], rate[i] and term[i] and returns the monthly payment plus a small fee.",
|
|
27
|
+
"language": "Excel",
|
|
28
|
+
"returnType": "",
|
|
29
|
+
"for": "i",
|
|
30
|
+
"in": "1..rows(amount)",
|
|
31
|
+
"body": {
|
|
32
|
+
"payment": {
|
|
33
|
+
"formula": "(amount[i] * rate[i] /12) / (1 - (1 + rate[i]/12)^-term[i])"
|
|
34
|
+
},
|
|
35
|
+
"fee": {
|
|
36
|
+
"formula": "feePercent * payment"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"return": "payment + fee"
|
|
40
|
+
},
|
|
41
|
+
"iterPaymentSome": {
|
|
42
|
+
"comment": "This box iterator uses language Excel and type SOME. The SOME type of box iterator, verifies if at least one computed element of the loop is True. If so, the box iterator will return True. This iterator accepts three inputs, amount[i], rate[i] and term[i] and returns the monthly payment plus a small fee.",
|
|
43
|
+
"language": "Excel",
|
|
44
|
+
"returnType": "",
|
|
45
|
+
"some": "i",
|
|
46
|
+
"in": "1..rows(amount)",
|
|
47
|
+
"body": {
|
|
48
|
+
"payment": {
|
|
49
|
+
"formula": "(amount[i] * rate[i] /12) / (1 - (1 + rate[i]/12)^-term[i])"
|
|
50
|
+
},
|
|
51
|
+
"fee": {
|
|
52
|
+
"formula": "feePercent * payment"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"return": "(payment + fee) > 2900"
|
|
56
|
+
},
|
|
57
|
+
"iterPaymentEvery": {
|
|
58
|
+
"comment": "This box iterator uses language Excel and EVERY. The EVERY type of box iterator, verifies if at all computed elements of the loop are True. If so, the box iterator will return True. This iterator accepts three inputs, amount[i], rate[i] and term[i] and returns the monthly payment plus a small fee.",
|
|
59
|
+
"language": "Excel",
|
|
60
|
+
"returnType": "",
|
|
61
|
+
"every": "i",
|
|
62
|
+
"in": "1..rows(amount)",
|
|
63
|
+
"body": {
|
|
64
|
+
"payment": {
|
|
65
|
+
"formula": "(amount[i] * rate[i] /12) / (1 - (1 + rate[i]/12)^-term[i])"
|
|
66
|
+
},
|
|
67
|
+
"fee": {
|
|
68
|
+
"formula": "feePercent * payment"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"return": "(payment + fee) > 2900"
|
|
72
|
+
},
|
|
73
|
+
"iterPaymentFeel": {
|
|
74
|
+
"comment": "This box iterator uses language FEEL and type FOR. The FOR type of box iterator executes a traditional FOR loop. This iterator accepts three inputs, amount[i], rate[i] and term[i] and returns the monthly payment plus a small fee.",
|
|
75
|
+
"language": "Feel",
|
|
76
|
+
"returnType": "",
|
|
77
|
+
"for": "rate",
|
|
78
|
+
"in": "[0.0375, 0.0475, 0.0575]",
|
|
79
|
+
"body": {
|
|
80
|
+
"payment": {
|
|
81
|
+
"formula": "(600000 * rate /12) / (1 - (1 + rate/12)**-360)"
|
|
82
|
+
},
|
|
83
|
+
"fee": {
|
|
84
|
+
"formula": "0.01 * payment"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"return": "payment + fee"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"data": {
|
|
91
|
+
"comment": "Holds all constant data arrays.",
|
|
92
|
+
"feePercent": {
|
|
93
|
+
"comment": "fee percentage",
|
|
94
|
+
"value": 0.01
|
|
95
|
+
},
|
|
96
|
+
"loan1Princ": {
|
|
97
|
+
"comment": "Loan 1 principal",
|
|
98
|
+
"value": 600000
|
|
99
|
+
},
|
|
100
|
+
"loan1Rate": {
|
|
101
|
+
"comment": "Loan 1 interest rate",
|
|
102
|
+
"value": 0.0375
|
|
103
|
+
},
|
|
104
|
+
"loan1Term": {
|
|
105
|
+
"comment": "Loan 1 term",
|
|
106
|
+
"value": 360
|
|
107
|
+
},
|
|
108
|
+
"loan2Princ": {
|
|
109
|
+
"comment": "Loan 2 principal",
|
|
110
|
+
"value": 550000
|
|
111
|
+
},
|
|
112
|
+
"loan2Rate": {
|
|
113
|
+
"comment": "Loan 2 interest rate",
|
|
114
|
+
"value": 0.0475
|
|
115
|
+
},
|
|
116
|
+
"loan2Term": {
|
|
117
|
+
"comment": "Loan 2 term",
|
|
118
|
+
"value": 360
|
|
119
|
+
},
|
|
120
|
+
"loan3Princ": {
|
|
121
|
+
"comment": "Loan 3 principal",
|
|
122
|
+
"value": 500000
|
|
123
|
+
},
|
|
124
|
+
"loan3Rate": {
|
|
125
|
+
"comment": "Loan 3 interest rate",
|
|
126
|
+
"value": 0.0575
|
|
127
|
+
},
|
|
128
|
+
"loan3Term": {
|
|
129
|
+
"comment": "Loan 3 term",
|
|
130
|
+
"value": 360
|
|
131
|
+
},
|
|
132
|
+
"amount": {
|
|
133
|
+
"comment": "Array containing principal amounts for all three loans. Loan 1 = amount[1] = 600000",
|
|
134
|
+
"value": [ 600000, 550000, 500000 ]
|
|
135
|
+
},
|
|
136
|
+
"rate": {
|
|
137
|
+
"comment": "Array containing interest rate amounts for all three loans. Interest rate for loan 1 = rate[1] = 0.0375",
|
|
138
|
+
"value": [ 0.0375, 0.0475, 0.0575 ]
|
|
139
|
+
},
|
|
140
|
+
"term": {
|
|
141
|
+
"comment": "Array containing term lengths for all three loans. Loan 1 term = term[1] = 360",
|
|
142
|
+
"value": [ 360, 360, 360 ]
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"formulas": {
|
|
146
|
+
"comment": "Contains all formulas calling the box function and box iterators.",
|
|
147
|
+
"loan1Pmt": {
|
|
148
|
+
"comment": "Calls the funMonthlyPayment box function with three arguments, loan1Princ, loan1Rate and loan1Term, to calculate the monthly payment for loan 1.",
|
|
149
|
+
"formula": "funMonthlyPayment(loan1Princ, loan1Rate, loan1Term)",
|
|
150
|
+
"finalValue": []
|
|
151
|
+
},
|
|
152
|
+
"loan2Pmt": {
|
|
153
|
+
"comment": "Calls the funMonthlyPayment box function with three arguments, loan2Princ, loan2Rate and loan2Term, to calculate the monthly payment for loan 2.",
|
|
154
|
+
"formula": "funMonthlyPayment(loan2Princ, loan2Rate, loan2Term)",
|
|
155
|
+
"finalValue": []
|
|
156
|
+
},
|
|
157
|
+
"loan3Pmt": {
|
|
158
|
+
"comment": "Calls the funMonthlyPayment box function with three arguments, loan3Princ, loan3Rate and loan3Term, to calculate the monthly payment for loan 3.",
|
|
159
|
+
"formula": "funMonthlyPayment(loan3Princ, loan3Rate, loan3Term)",
|
|
160
|
+
"finalValue": []
|
|
161
|
+
},
|
|
162
|
+
"monthlyLoanPMT": {
|
|
163
|
+
"comment": "Calls the iterMonthlyPayment box iterator.",
|
|
164
|
+
"formula": "iterMonthlyPayment()",
|
|
165
|
+
"finalValue": []
|
|
166
|
+
},
|
|
167
|
+
"boxIterTypeSome": {
|
|
168
|
+
"comment": "Calls the iterPaymentSome box iterator.",
|
|
169
|
+
"formula": "iterPaymentSome()",
|
|
170
|
+
"finalValue": []
|
|
171
|
+
},
|
|
172
|
+
"boxIterTypeEvery": {
|
|
173
|
+
"comment": "Calls the iterPaymentEvery box iterator.",
|
|
174
|
+
"formula": "iterPaymentEvery()",
|
|
175
|
+
"finalValue": []
|
|
176
|
+
},
|
|
177
|
+
"boxIterLangFEEL": {
|
|
178
|
+
"comment": "Calls the iterPaymentFeel box iterator.",
|
|
179
|
+
"formula": "iterPaymentFeel()",
|
|
180
|
+
"finalValue": []
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "BoxIter_FEELwithTypeDef",
|
|
3
|
-
"modelDescription": "Example of box iterator using FEEL language",
|
|
4
|
-
"modelType": "calculation",
|
|
5
|
-
|
|
6
|
-
"typeDefs": {
|
|
7
|
-
|
|
8
|
-
"tLoan": {
|
|
9
|
-
"components": {
|
|
10
|
-
"principal": { "type": "number", "allowedValues": [">0"] },
|
|
11
|
-
"rate": { "type": "number", "allowedValues": ["[0..1]"] },
|
|
12
|
-
"termMonths": { "type": "number", "allowedValues": [">0"] }
|
|
13
|
-
},
|
|
14
|
-
"language": "Excel"
|
|
15
|
-
},
|
|
16
|
-
"tLoanList": {
|
|
17
|
-
"language": "Excel", "typeRef": "tLoan", "isCollection": true
|
|
18
|
-
},
|
|
19
|
-
"tPayment": {
|
|
20
|
-
"language": "Excel",
|
|
21
|
-
"components": ["payment","fee","total"], "types": ["number","number","number"]
|
|
22
|
-
},
|
|
23
|
-
"tPaymentList": {
|
|
24
|
-
"language": "Excel", "typeRef": "tPayment", "isCollection": true
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
|
|
28
|
-
"boxFunctions": {
|
|
29
|
-
|
|
30
|
-
"funPMT": {
|
|
31
|
-
"inputs": ["p", "r", "n"], "inputTypes": ["number", "number", "number"],
|
|
32
|
-
|
|
33
|
-
"language": "Excel", "returnType": "tPayment",
|
|
34
|
-
|
|
35
|
-
"body": {
|
|
36
|
-
"payment": { "formula": "(p*r/12) / (1 - (1 + r/12)^-n)" },
|
|
37
|
-
"fee": { "formula": "0.01 * payment" },
|
|
38
|
-
"total": { "formula": "payment + fee" }
|
|
39
|
-
},
|
|
40
|
-
"return": "0"
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
|
|
44
|
-
"boxIterators": {
|
|
45
|
-
|
|
46
|
-
"forPMT": {
|
|
47
|
-
"language": "Excel", "returnType": "tPayment",
|
|
48
|
-
|
|
49
|
-
"for": "loan", "in": "loans",
|
|
50
|
-
|
|
51
|
-
"body": {
|
|
52
|
-
"payment": { "formula": "(loan.principal*loan.rate/12) / (1 - (1 + loan.rate/12)^-loan.termMonths)" },
|
|
53
|
-
"fee": { "formula": "0.01 * payment" },
|
|
54
|
-
"total": { "formula": "payment + fee" }
|
|
55
|
-
},
|
|
56
|
-
"return": "total"
|
|
57
|
-
},
|
|
58
|
-
"forFac": {
|
|
59
|
-
"language": "Feel", "returnType": "number",
|
|
60
|
-
|
|
61
|
-
"for": "i", "in": "0..N",
|
|
62
|
-
|
|
63
|
-
"return": "if i = 0 then 1 else i * partial[-1]"
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
|
|
67
|
-
"data": {
|
|
68
|
-
"N": { "value": 4, "binding": "get" },
|
|
69
|
-
|
|
70
|
-
"loans": { "type": "tLoanList", "value": [[600000, 0.0375, 360],[100000, 0.0375, 360]], "binding": "get" }
|
|
71
|
-
},
|
|
72
|
-
|
|
73
|
-
"formulas": {
|
|
74
|
-
|
|
75
|
-
"MonthlyPayment": { "feelFormula": "forPMT()", "finalValue": [] },
|
|
76
|
-
|
|
77
|
-
"Factorials": { "feelFormula": "forFac()", "finalValue": [] }
|
|
78
|
-
}
|
|
79
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "BoxIter_FEELwithTypeDef",
|
|
3
|
+
"modelDescription": "Example of box iterator using FEEL language",
|
|
4
|
+
"modelType": "calculation",
|
|
5
|
+
|
|
6
|
+
"typeDefs": {
|
|
7
|
+
|
|
8
|
+
"tLoan": {
|
|
9
|
+
"components": {
|
|
10
|
+
"principal": { "type": "number", "allowedValues": [">0"] },
|
|
11
|
+
"rate": { "type": "number", "allowedValues": ["[0..1]"] },
|
|
12
|
+
"termMonths": { "type": "number", "allowedValues": [">0"] }
|
|
13
|
+
},
|
|
14
|
+
"language": "Excel"
|
|
15
|
+
},
|
|
16
|
+
"tLoanList": {
|
|
17
|
+
"language": "Excel", "typeRef": "tLoan", "isCollection": true
|
|
18
|
+
},
|
|
19
|
+
"tPayment": {
|
|
20
|
+
"language": "Excel",
|
|
21
|
+
"components": ["payment","fee","total"], "types": ["number","number","number"]
|
|
22
|
+
},
|
|
23
|
+
"tPaymentList": {
|
|
24
|
+
"language": "Excel", "typeRef": "tPayment", "isCollection": true
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
"boxFunctions": {
|
|
29
|
+
|
|
30
|
+
"funPMT": {
|
|
31
|
+
"inputs": ["p", "r", "n"], "inputTypes": ["number", "number", "number"],
|
|
32
|
+
|
|
33
|
+
"language": "Excel", "returnType": "tPayment",
|
|
34
|
+
|
|
35
|
+
"body": {
|
|
36
|
+
"payment": { "formula": "(p*r/12) / (1 - (1 + r/12)^-n)" },
|
|
37
|
+
"fee": { "formula": "0.01 * payment" },
|
|
38
|
+
"total": { "formula": "payment + fee" }
|
|
39
|
+
},
|
|
40
|
+
"return": "0"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
"boxIterators": {
|
|
45
|
+
|
|
46
|
+
"forPMT": {
|
|
47
|
+
"language": "Excel", "returnType": "tPayment",
|
|
48
|
+
|
|
49
|
+
"for": "loan", "in": "loans",
|
|
50
|
+
|
|
51
|
+
"body": {
|
|
52
|
+
"payment": { "formula": "(loan.principal*loan.rate/12) / (1 - (1 + loan.rate/12)^-loan.termMonths)" },
|
|
53
|
+
"fee": { "formula": "0.01 * payment" },
|
|
54
|
+
"total": { "formula": "payment + fee" }
|
|
55
|
+
},
|
|
56
|
+
"return": "total"
|
|
57
|
+
},
|
|
58
|
+
"forFac": {
|
|
59
|
+
"language": "Feel", "returnType": "number",
|
|
60
|
+
|
|
61
|
+
"for": "i", "in": "0..N",
|
|
62
|
+
|
|
63
|
+
"return": "if i = 0 then 1 else i * partial[-1]"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
|
|
67
|
+
"data": {
|
|
68
|
+
"N": { "value": 4, "binding": "get" },
|
|
69
|
+
|
|
70
|
+
"loans": { "type": "tLoanList", "value": [[600000, 0.0375, 360],[100000, 0.0375, 360]], "binding": "get" }
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
"formulas": {
|
|
74
|
+
|
|
75
|
+
"MonthlyPayment": { "feelFormula": "forPMT()", "finalValue": [] },
|
|
76
|
+
|
|
77
|
+
"Factorials": { "feelFormula": "forFac()", "finalValue": [] }
|
|
78
|
+
}
|
|
79
|
+
}
|