karimsa/solver.js

View on GitHub
lib/data/error.js

Summary

Maintainability
A
25 mins
Test Coverage
/**
 * lib/data/error.js - solver.js
 * Licensed under GPLv2.
 * Copyright (C) 2015 Karim Alibhai.
 **/

module.exports = function (exp) {
    "use strict";

    var i, e, Data, data = this;

    if (!data._e) {
        Data = data.construct();

        // calculate error per point where
        // only absolute value matters
        for (i = 0, e = []; i < exp.length; i += 1) {
            if (Number.areNumbers(data[i], exp[i])) {
                e[i] = Data.round(Math.abs(data[i] - exp[i]) / exp[i]);
            }
        }

        // turn errors into a dataset to
        // be able to calculate other stats on
        // the errors
        data._e = new Data(e);
    }

    return data._e;
};