Skip to content

Commit

Permalink
[UPDATE] initial prototype.
Browse files Browse the repository at this point in the history
  • Loading branch information
kgryte committed May 29, 2015
1 parent 3662598 commit e1c1df0
Show file tree
Hide file tree
Showing 10 changed files with 407 additions and 24 deletions.
51 changes: 51 additions & 0 deletions benchmark/b.get.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
'use strict';

// MODULES //

var Matrix = require( './../lib' );


// VARIABLES //

var start,
stop,
res,
len,
m,
v,
i;


// --------------------------------------
// WARM-UP

len = 1e6;
for ( i = 0; i < len; i++ ) {
i = i;
}


// --------------------------------------
// BENCHMARK

len = 1e6;

res = new Array( 2 );

m = new Matrix( [128,128] );

start = process.hrtime();
for ( i = 0; i < len; i++ ) {
v = m.get( 64, 64 );
}
stop = process.hrtime( start );

res[ 1 ] = stop[ 0 ] + stop[ 1 ]*1e-9;


// --------------------------------------
// RESULTS

console.log( 'Get:\t%d ops/sec', Math.floor( len/res[ 1 ] ) );
console.log( '\n' );

50 changes: 50 additions & 0 deletions benchmark/b.set.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
'use strict';

// MODULES //

var Matrix = require( './../lib' );


// VARIABLES //

var start,
stop,
res,
len,
m,
i;


// --------------------------------------
// WARM-UP

len = 1e6;
for ( i = 0; i < len; i++ ) {
i = i;
}


// --------------------------------------
// BENCHMARK

len = 1e6;

res = new Array( 2 );

m = new Matrix( [128,128] );

start = process.hrtime();
for ( i = 0; i < len; i++ ) {
m.set( 64, 64, Math.random() );
}
stop = process.hrtime( start );

res[ 1 ] = stop[ 0 ] + stop[ 1 ]*1e-9;


// --------------------------------------
// RESULTS

console.log( 'Set:\t%d ops/sec', Math.floor( len/res[ 1 ] ) );
console.log( '\n' );

8 changes: 7 additions & 1 deletion examples/index.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
'use strict';

var foo = require( './../lib' );
var Matrix = require( './../lib' );

var m = new Matrix( [2,2] );

console.log( m );

console.log( m.set( 1, 1, 5 ) );
20 changes: 20 additions & 0 deletions lib/btypes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
'use strict';

// BASE TYPES //

var BTYPES = {
'int8': Int8Array,
'uint8': Uint8Array,
'uint8_clamped': Uint8ClampedArray,
'int16': Int16Array,
'uint16': Uint16Array,
'int32': Int32Array,
'uint32': Uint32Array,
'float32': Float32Array,
'float64': Float64Array
};


// EXPORTS //

module.exports = BTYPES;
20 changes: 20 additions & 0 deletions lib/dtypes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
'use strict';

// DATA TYPES //

var DTYPES = [
'int8',
'uint8',
'uint8_clamped',
'int16',
'uint16',
'int32',
'uint32',
'float32',
'float64'
];


// EXPORTS //

module.exports = DTYPES;
34 changes: 34 additions & 0 deletions lib/getType.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
'use strict';

// MODULES //

var typeName = require( 'type-name' );


// VARIABLES //

var ITYPES = require( './itypes.js' );


// GET TYPE //

/**
* FUNCTION: getType( x )
* Determines an input data type.
*
* @private
* @param {*} x - input value
* @returns {String|Null} data type
*/
function getType( x ) {
var type = ITYPES[ typeName( x ) ];
if ( type ) {
return type;
}
return null;
} // end FUNCTION getType()


// EXPORTS //

module.exports = getType;
23 changes: 1 addition & 22 deletions lib/index.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,5 @@
'use strict';

// MODULES //

// var module_alias = require( 'module_name' );


// FUNCTIONS //

// any private utility functions go here...


// {{ FOO }} //

/**
* FUNCTION: foo()
* {{ foo description }}.
*/
function foo() {

} // end FUNCTION foo()


// EXPORTS //

module.exports = foo;
module.exports = require( './matrix.js' );
20 changes: 20 additions & 0 deletions lib/itypes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
'use strict';

// INPUT TYPES //

var ITYPES = {
'Int8Array': 'int8',
'Uint8Array': 'uint8',
'Uint8ClampedArray': 'uint8_clamped',
'Int16Array': 'int16',
'Uint16Array': 'uint16',
'Int32Array': 'int32',
'Uint32Array': 'uint32',
'Float32Array': 'float32',
'Float64Array': 'float64'
};


// EXPORTS //

module.exports = ITYPES;
Loading

0 comments on commit e1c1df0

Please sign in to comment.