Changeset 18227 for branches


Ignore:
Timestamp:
06/18/15 12:18:21 (10 years ago)
Author:
dneise
Message:
turned into library
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/FACT++_scripts_refactoring/Hist1D.js

    r14763 r18227  
    55'use strict';
    66
    7 /**
    8  *
    9  * @constructor
    10  *
    11  * @param {Interger} nx
    12  *
    13  * @param {Number} xmin
    14  *
    15  * @param {Number} xmax
    16  *
    17  * @returns
    18  *     A sub-classed array with the Hist1D functions added as properties.
    19  *
    20  * @example
    21  *     var hist = Hist1D(10, -0.5, 1.5);
    22  *
    23  */
    24 function Hist1D(nx, xmin, xmax)
    25 {
    26     /**
    27      *
    28      * Array
    29      *
    30      */
    31     var arr = new Array(nx);
    327
    33     /**
    34      *
    35      * @exports arr.get as Hist1D.get
    36      *
    37      */
    38     arr.get = function(x)
    39     {
    40         var ix = parseInt(nx*(x-xmin)/(xmax-xmin));
     8if (!("Hist1D" in this)){
     9    var Hist1D = {
     10        /**
     11         *
     12         * @constructor
     13         *
     14         * @param {Interger} nx
     15         *
     16         * @param {Number} xmin
     17         *
     18         * @param {Number} xmax
     19         *
     20         * @returns
     21         *     A sub-classed array with the Hist1D functions added as properties.
     22         *
     23         * @example
     24         *     var hist = Hist1D(10, -0.5, 1.5);
     25         *
     26         */
     27        Hist1D : function(nx, xmin, xmax)
     28        {
     29            /**
     30             *
     31             * Array
     32             *
     33             */
     34            var arr = new Array(nx);
    4135
    42         return arr[ix] ? arr[ix] : 0;
    43     }
     36            /**
     37             *
     38             * @exports arr.get as Hist1D.get
     39             *
     40             */
     41            arr.get = function(x)
     42            {
     43                var ix = parseInt(nx*(x-xmin)/(xmax-xmin));
    4444
    45     /**
    46      *
    47      * @exports arr.fill as Hist1D.fill
    48      *
    49      */
    50     arr.fill = function(x, w)
    51     {
    52         if (!x || x===NaN)
    53             return false;
    54 
    55         var ix = parseInt(nx*(x-xmin)/(xmax-xmin));
    56         if (ix<0 || ix>=nx)
    57             return false;
    58 
    59         if (!arr[ix])
    60             arr[ix] = 0;
    61 
    62         arr[ix] += w ? w : 1;
    63 
    64         return true;
    65     }
    66 
    67     /**
    68      *
    69      * @exports arr.print as Hist1D.print
    70      *
    71      */
    72     arr.print = function(len)
    73     {
    74         if (!len)
    75             len = 40;
    76         if (len<6)
    77             len = 6;
    78 
    79         var sum = arr.reduce(function(a,b){return a+b;}, 0);
    80         var max = arr.reduce(function(a,b){return Math.max(a,b);}, 0);
    81 
    82         console.out("");
    83         for (var ix=nx-1; ix>=0; ix--)
    84         {
    85             var entry = arr[ix] ? arr[ix] : 0;
    86 
    87             var line ="%3d [%3d%] ".$(ix, sum==0 ? 0 : 100*entry/sum);
    88             if (arr[ix])
    89             {
    90                 var val = parseInt(len*arr[ix]/max);
    91                 var entry = ("%"+val+"s").$("");
    92                 entry = entry.replace(/ /g, "*");
    93                 line += ("%-"+len+"s").$(entry)+" |";
     45                return arr[ix] ? arr[ix] : 0;
    9446            }
    9547
    96             console.out(line);
    97         }
     48            /**
     49             *
     50             * @exports arr.fill as Hist1D.fill
     51             *
     52             */
     53            arr.fill = function(x, w)
     54            {
     55                if (!x || x===NaN)
     56                    return false;
    9857
    99         var entry = arr[ix] ? arr[ix] : 0;
    100         console.out("   --------"+("%"+(len-5)+"s").$("")+"-------");
     58                var ix = parseInt(nx*(x-xmin)/(xmax-xmin));
     59                if (ix<0 || ix>=nx)
     60                    return false;
    10161
    102         var line =" %9d  ".$(sum);
    103         line += ("%"+len+"d").$(max);
    104         console.out(line);
    105         console.out("");
    106     }
     62                if (!arr[ix])
     63                    arr[ix] = 0;
    10764
    108     return arr;
     65                arr[ix] += w ? w : 1;
     66
     67                return true;
     68            }
     69
     70            /**
     71             *
     72             * @exports arr.print as Hist1D.print
     73             *
     74             */
     75            arr.print = function(len)
     76            {
     77                if (!len)
     78                    len = 40;
     79                if (len<6)
     80                    len = 6;
     81
     82                var sum = arr.reduce(function(a,b){return a+b;}, 0);
     83                var max = arr.reduce(function(a,b){return Math.max(a,b);}, 0);
     84
     85                console.out("");
     86                for (var ix=nx-1; ix>=0; ix--)
     87                {
     88                    var entry = arr[ix] ? arr[ix] : 0;
     89
     90                    var line ="%3d [%3d%] ".$(ix, sum==0 ? 0 : 100*entry/sum);
     91                    if (arr[ix])
     92                    {
     93                        var val = parseInt(len*arr[ix]/max);
     94                        var entry = ("%"+val+"s").$("");
     95                        entry = entry.replace(/ /g, "*");
     96                        line += ("%-"+len+"s").$(entry)+" |";
     97                    }
     98
     99                    console.out(line);
     100                }
     101
     102                var entry = arr[ix] ? arr[ix] : 0;
     103                console.out("   --------"+("%"+(len-5)+"s").$("")+"-------");
     104
     105                var line =" %9d  ".$(sum);
     106                line += ("%"+len+"d").$(max);
     107                console.out(line);
     108                console.out("");
     109            }
     110
     111            return arr;
     112        },
     113    };
    109114}
     115else{
     116    console.out("multiple include of 'Hist1D.js'")
     117}
     118
Note: See TracChangeset for help on using the changeset viewer.