First Commit

This commit is contained in:
2025-11-18 13:16:41 +01:00
parent d3331c63b7
commit 6f586ae91b
6 changed files with 1184 additions and 2 deletions

47
Vector.js Normal file
View File

@@ -0,0 +1,47 @@
function random() {
let seed = 12345; // fixed seed
return function() {
seed = ( seed * 16807 ) % 2147483647;
return ( seed - 1 ) / 2147483646;
};
}
const randomFix = random();
export default class Vector {
constructor( length, fillValue = 0 ) {
this.data = new Array( length );
for ( let i = 0 ; i < length ; i++ ) {
this.data[ i ] = fillValue;
}
}
get length() {
return this.data.length;
}
static dot( a, b ) {
let sum = 0;
for ( let i = 0 ; i < a.length ; i++ ) {
sum += a.data[ i ] * b.data[ i ];
}
return sum;
}
static softmax( vec ) {
const max = Math.max( ...vec.data );
const exps = new Array( vec.length );
let sum = 0;
for ( let i = 0 ; i < vec.length ; i++ ) {
exps[ i ] = Math.exp( vec.data[ i ] - max );
sum += exps[ i ];
}
const result = new Vector( vec.length );
for ( let i = 0 ; i < vec.length ; i++ ) {
result.data[ i ] = exps[ i ] / sum;
}
return result;
}
}