| 
<?phpinclude_once("Headers.php");
 include_once("Threads.php");
 
 use NameSpaceNumpyLight\NumpyLight;
 use NameSpaceRandomGenerator\RandomGenerator;
 use NameSpaceActivationSigmoid\Activation_Sigmoid;
 use ProcessManager\ProcessManager;
 use NameSpaceArrayFileHandler\ArrayFileHandler;
 use NameSpaceQueue\Queue;
 use NameSpaceTaskRegistry\TaskRegistry;
 use NameSpaceThreads\Threads;
 function generateRandomMatrix($rows, $cols, $min = 0.0, $max = 1.0) {
 $matrix = [];
 
 for ($i = 0; $i < $rows; $i++) {
 $row = [];
 for ($j = 0; $j < $cols; $j++) {
 $row[] = $min + mt_rand() / mt_getrandmax() * ($max - $min);
 }
 $matrix[] = $row;
 }
 
 return $matrix;
 }
 
 
 function calculateMatrixSize($matrix) {
 $totalBytes = 0;
 
 foreach ($matrix as $rowIndex => $row) {
 // Convert each element to a string and calculate the length
 foreach ($row as $element) {
 $totalBytes += strlen((string) $element);
 }
 
 // Add bytes for column separators (','), one less than the number of elements in a row
 if (count($row) > 0) {
 $totalBytes += count($row) - 1;
 }
 
 // Add bytes for row separator ('@'), except for the last row
 if ($rowIndex < count($matrix) - 1) {
 $totalBytes += 1;
 }
 }
 
 return $totalBytes;
 }
 // Example usage:
 $rows = 100; // Number of rows
 $cols = 100; // Number of columns
 $min = 0.1; // Minimum float value
 $max = 0.8; // Maximum float value
 echo "\nSTARTING PROGRAM....\n";
 $matrixA = generateRandomMatrix($rows=300, $cols=1000, $min = 0.1, $max = 0.2) ;
 $matrixB = generateRandomMatrix($rows=1000, $cols=1000, $min = 0.1, $max = 0.2) ;
 
 
 
 // $matrixB = generateRandomMatrix($rows=512, $cols=512, $min, $max);
 
 
 $startTime = microtime(true); // Start time
 // NumpyLight::dot($matrixA,$matrixB);0.15455293655396 seconds
 NumpyLight::dot($matrixA,$matrixB);
 
 $endTime = microtime(true); // End time
 $executionTime = $endTime - $startTime; // Calculate execution time
 echo "Task dot with normal operation with caller function test executed time $executionTime seconds.\n";
 
 
 
 
 
 // function testbackground($he=1){
 //     mt_srand(); // Seed the random number generator
 //     $randomNumber = mt_rand(0, 4);
 //     echo "\n $he will sleep for $randomNumber s\n";
 //     sleep($randomNumber);
 //     echo "\n $he woke up\n";
 // }
 
 // Threads::addTask("testbackground",[1]);
 // Threads::addTask("testbackground",[2]);
 // Threads::addTask("testbackground",[3]);
 // Threads::addTask("testbackground",[4]);
 // Threads::addTask("testbackground",[5]);
 // Threads::addTask("testbackground",[6]);
 // Threads::addTask("testbackground",[7]);
 // Threads::addTask("testbackground",[8]);
 // Threads::run(10);
 // echo "\n\n all done \n\n";
 
 ?>
 |