code: function cumulative_std_normal_probability(z) {
  
          // Calculate the position of this value.
          var absZ = Math.abs(z),
              // Each row begins with a different
              // significant digit: 0.5, 0.6, 0.7, and so on. So the row is simply
              // this value's significant digit: 0.567 will be in row 0, so row=0,
              // 0.643 will be in row 1, so row=10.
              row = Math.floor(absZ * 10),
              column = 10 * (Math.floor(absZ * 100) / 10 - Math.floor(absZ * 100 / 10)),
              index = Math.min((row * 10) + column, standard_normal_table.length - 1);
  
          // The index we calculate must be in the table as a positive value,
          // but we still pay attention to whether the input is positive
          // or negative, and flip the output value as a last step.
          if (z >= 0) {
              return standard_normal_table[index];
          } else {
              // due to floating-point arithmetic, values in the table with
              // 4 significant figures can nevertheless end up as repeating
              // fractions when they're computed here.
              return +(1 - standard_normal_table[index]).toFixed(4);
          }
      }
docs: # [Cumulative Standard Normal Probability](http://en.wikipedia.org/wiki/Standard_normal_table)  Since probability tables cannot be printed for every normal distribution, as there are an infinite variety of normal distributions, it is common practice to convert a normal to a standard normal and then use the standard normal table to find probabilities