Compare commits

...

2 Commits

Author SHA1 Message Date
Palash Tyagi
d8153408e1 Refactor random number generation and update num_periods in main function 2025-04-25 15:39:51 +01:00
Palash Tyagi
e87d6b7398 change to Gitea url for testing 2025-04-25 15:37:44 +01:00
2 changed files with 10 additions and 13 deletions

View File

@ -1,10 +1,12 @@
[package]
name = "rusttest"
version = "0.1.0"
edition = "2024"
edition = "2018"
[dependencies]
# add https://github.com/Magnus167/rustframe as a dependency
rustframe = { git = "https://github.com/Magnus167/rustframe.git" , rev = "refs/pull/19/head" }
# rustframe = { git = "https://github.com/Magnus167/rustframe.git" , rev = "refs/pull/19/head" }
rustframe = { git = "https://gitea.nulltech.uk/Magnus167/rustframe.git" , branch = "matr_eq" }
chrono = { version = "*" }
rand = { version = "*" }

View File

@ -1,6 +1,5 @@
use chrono::NaiveDate;
use rand::distr::Uniform;
use rand::{Rng, rng}; // Import thread_rng for random number generation
use rand::Rng; // Import thread_rng for random number generation
use rustframe::frame::{Frame, RowIndex};
use rustframe::matrix::{BoolMatrix, BoolOps, Matrix, SeriesOps}; // Explicitly list used items
use rustframe::utils::{BDateFreq, BDatesList};
@ -8,8 +7,8 @@ use std::time::Instant; // Use Instant for timing
// Helper function to generate a random f64 between 0.0 and 1.0
fn generate_random_float() -> f64 {
let mut rng = rng(); // Get the thread-local random number generator
let uniform = Uniform::new(0.0, 1.0).unwrap(); // Define a uniform distribution range and unwrap the result
let mut rng = rand::rng(); // Get the thread-local random number generator
let uniform = rand::distr::Uniform::new(0.0, 1.0).unwrap(); // Define a uniform distribution range and unwrap the result
rng.sample(&uniform) // Sample a value from the distribution
}
@ -44,7 +43,7 @@ fn main() {
// --- Configuration ---
let start_date_str = "2000-01-01".to_string();
let num_periods = 20_000;
let num_periods = 1_000;
let num_columns = 1_000;
let frequency = BDateFreq::Daily;
@ -129,14 +128,10 @@ fn main() {
// Complex operation
let complex_start_time = Instant::now();
let frame_r = &frame_a * &frame_b;
let frame_r = &frame_r / &frame_b;
let frame_r = &frame_r - &frame_a;
let frame_r = &frame_r + &frame_a;
let frame_r = &frame_r - &frame_a;
let frame_r = &(&(&(&(&frame_a * &frame_b) / &frame_b) - &frame_a) + &frame_a) - &frame_a;
let frame_r = frame_r.matrix().lt_elementwise(0.0000001);
let complex_result = frame_r.any();
let complex_result = frame_r.all();
let complex_duration = complex_start_time.elapsed();
println!("Complex operation duration: {:?}", complex_duration);
println!(