<?php
// Start the timer
// Generate random matrices
$rows = 5000;
$cols = 5000;
$m1 = array_fill(0, $rows, array_fill(0, $cols, mt_rand() / mt_getrandmax()));
$m2 = array_fill(0, $rows, array_fill(0, $cols, mt_rand() / mt_getrandmax()));
$start_time = microtime(true);
$matrix1 = new Matrix($m1);
$matrix2 = new Matrix($m2);
$end_time = microtime(true);
$setup_time = $end_time - $start_time;
// Output execution times
echo "Setup Time: " . $setup_time . " seconds\n";
$start_time = microtime(true);
$resultSubtract = $matrix1->sub($matrix2);
$end_time = microtime(true);
$subtract_time = $end_time - $start_time;
echo "Subtraction Time: " . $subtract_time . " seconds\n";
// Perform operations
$resultAdd = $matrix1->add($matrix2);
$end_time = microtime(true);
$add_time = $end_time - $start_time;
echo "Addition Time: " . $add_time . " seconds\n";
$resultAdd = $matrix1->add(2);
$end_time = microtime(true);
$add_time = $end_time - $start_time;
echo "Addition constant Time: " . $add_time . " seconds\n";
$resultAdd = $matrix1->sub(2);
$end_time = microtime(true);
$add_time = $end_time - $start_time;
echo "Subtraction constant Time: " . $add_time . " seconds\n";
$start_time = microtime(true);
$resultDot = $matrix1->dot($matrix2);
$end_time = microtime(true);
$dot_time = $end_time - $start_time;
echo "Dot Product Time: " . $dot_time . " seconds\n";
?>
|