JSFiddle - React, Tailwind, and code Playground

by Sub Taper

HTML

<script src="https://www.google.com/jsapi?ext.js"></script>
<body>
<form>
Half-Life:
PIN: <input class="amount" type="number" id="d" maxlength="4" size="20"><br>
  PIN: <input class="amount" type="number" id="d" maxlength="4" size="20"><br>

</form>
</body>

<div id="todays-total-sales"></div>

CSS

input.half-life {
    font-size: medium;
}

JavaScript

google.load('visualization', '1.1', {packages: ['line']});
google.setOnLoadCallback(drawChart);

function drawChart() {

    var data = new google.visualization.DataTable();
    
     var plot_data = [];
  var arr_i = [];
  var arr_k = [];

  var hl = 8;
 // parseFloat($("#halfLife").val());
  //console.log(hl);
  var d = 20;
 // parseFloat($("#doseAmount").val());
  //console.log(d);
  var fr = 4;
  //parseFloat($("#freqDose").val());
  //console.log(fr);

  var span = 6;
  arr_k.length = span;
  arr_k.fill(0);
  var inner = [];
  for (k = 0; k <= span; k += 1) {
    arr_k[k] = [];
    for (i = 0; i <= fr; i += 1) {
      var in_point = Math.pow(0.5, (i / hl));
      var func2 = function(k, i) {
        return (k == 0 && i == 0) ? d : (k > 0 && i == 0) ? arr_k[k - 1][fr] + d : (i > 0) ? arr_k[k][0] * in_point : 0
      }
      arr_k[k][i] = func2(k, i);
    }
  }



  console.table(arr_k);
  var flattened = arr_k.reduce(
    (acc, cur) => acc.concat(cur), []
  );


  for (i = 0; i <= flattened.length; i += 1) {
    var point = flattened[i];
    plot_data.push([i, point]);
  }


  console.log(plot_data);
  
    data.addColumn('number', 'Hour');
    data.addColumn('number', 'Pageviews');

  /*  for (i = 0; i < chartData.length; i++){
        data.addRow(chartData[i]);
    };*/
    data.addRows(plot_data);
     //data.addRows([chartData[2]]);
    var options = {
        width: 450,
        height: 250
    };

    var chart = new google.charts.Line(document.getElementById('todays-total-sales'));

    chart.draw(data, options);
}