Tips and tricks #8: How to reuse existing calculator

This article describes process of reusing another calculator's logic (algorithm) in your calculator.

Tips and tricks series

This article may rely on knowledge you should get from previous articles, so you may want to check them first.

Algorithm reuse

In this article, we will create a calculator which will use a calculator already existing on site. Technically, our calculator delegates part of calculations to another calculator or reuses another calculator's algorithm.

For example, we will create a calculator which will be just an enhanced version of the Probability of given number success events in several Bernoulli trials calculator. That calculator outputs probability only for single entered k. Our calculator will display probabilities in a table, for each k from zero to n (number of Bernoulli trials).

Create new calculator. Add two inputs:

Name Variable Type Default value Note
Number of Bernoulli trials n Number 10
Success probability p Number 0.5 Set "Allow decimal digits", set "Number range", set range from 0 to 1

Create output table. Hover Table button and click on Add output table menu item. This will bring up the output table editor dialog.

Fill Name and Variable with Bernoulli trials and table values respectively. Leave Description empty. The Table columns part of the dialog consists of two parts: column editor on the top and list of columns at the bottom, below button Add. For the new table, it is empty.

Now fill the information for the first table column like this:

Field name Value Meaning
Variable k Name of Javascript variable, which is used to hold input value
Column Name Number of successes Column name as displayed in column header
Column appearance Show on diagram Marks this column as the x-axis of the chart
Type Number The type of the output

Leave all other fields with their default values and press Add to add second column.

Fill in the information for the second table column

Field name Value Meaning
Variable p Name of Javascript variable, which is used to hold input value
Column Name Probability Column name as displayed in column header
Column appearance Show as line Marks this column as a source of line chart
Type Number The type of the output
Number of decimal digits 3 number of decimal digits displayed in this column by default

Leave all other fields with their default values and press Add to add the second column.

Note how the list of columns now displays added columns. You can edit and delete it if you need to, using links in the list.

Press OK to close the output table editor.

Now we need to add code into the Calculate function.

Let's first create code to populate table.

for(var i = 0; i <= n; ++i) {
    var rec = table.AddNewRecord();
    rec.k = i;
    rec.p = 0.0;
}

Note how the resulting table now filled with zeroes

At this moment, we need to reuse the existing calculator. To do this, click the Algorithm button on the toolbar. In the search window, enter "Probability of k" and click Search. Click on the search result (it should be "Probability of k success events in n Bernoulli trials").
This will generate a sample call in your code

//Probability of k success events in n Bernoulli trials
var result = Planetcalc.Calculate4145( {
//-----  Inputs  -----
    "p":0.2 //Event probability (Number)
    ,"n":10 //Number of independent trials (Number)
    ,"k":2  //Number of success events (Number)
} );

//-----  Outputs  -----
//result.P   - Probability (Number)

Insert it inside the cycle. Finally, your code should look like this

for(var i = 0; i <= n; ++i) {
    var result = Planetcalc.Calculate4145( {"p":p, "n":n,"k":i} );
    var rec = table.AddNewRecord();
    rec.k = i;
    rec.p = result.P;
}

You are ready to publish.

Click on Preview button. By default, you should see a table and chart with different probabilities of k successes. If everything is working as expected, Publish the calculator. After publishing, calculator will receive persistent address and will be available for other users of the site. You can also embed it in articles. In our case, you can see it right below:

PLANETCALC, Bernoulli trials table

Bernoulli trials table

Digits after the decimal point: 3
Bernoulli trials
The file is very large. Browser slowdown may occur during loading and creation.

Ссылка скопирована в буфер обмена
PLANETCALC, Tips and tricks #8: How to reuse existing calculator

Комментарии