From d07ee3cbe9b00fb9eacf7d0d805bb52292d39df0 Mon Sep 17 00:00:00 2001 From: timeshifter Date: Wed, 8 Jul 2026 17:40:54 +0200 Subject: [PATCH] data generation --- .gitignore | 3 + Cargo.lock | 110 +++++++++++++ Cargo.toml | 15 ++ src/generate.rs | 37 +++++ src/main.rs | 3 + stations.txt | 413 ++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 581 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 src/generate.rs create mode 100644 src/main.rs create mode 100644 stations.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dfbf29b --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/target +measurements.txt +flamegraph.svg diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..802bf95 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,110 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "brc" +version = "0.1.0" +dependencies = [ + "rand", + "rand_distr", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "chacha20" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" +dependencies = [ + "cfg-if", + "cpufeatures", + "rand_core", +] + +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "rand_core", +] + +[[package]] +name = "libc" +version = "0.2.186" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" + +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rand" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" +dependencies = [ + "chacha20", + "getrandom", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rand_distr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d431c2703ccf129de4d45253c03f49ebb22b97d6ad79ee3ecfc7e3f4862c1d8" +dependencies = [ + "num-traits", + "rand", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..7064bf4 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "brc" +version = "0.1.0" +edition = "2024" + +[dependencies] +rand_distr = "*" +rand = "*" + +[[bin]] +name = "generate" +path = "src/generate.rs" + +[profile.release] +debug = true diff --git a/src/generate.rs b/src/generate.rs new file mode 100644 index 0000000..759cff7 --- /dev/null +++ b/src/generate.rs @@ -0,0 +1,37 @@ +use std::io::Write; +use std::{fs::OpenOptions, io::BufWriter}; + +use rand::prelude::*; +use rand_distr::{Normal, Uniform}; + +fn main() { + let binding = std::fs::read_to_string("stations.txt").unwrap(); + let stations: Vec<_> = binding + .lines() + .map(|l| { + let (name, mean) = l.split_once(',').unwrap(); + let mean: f64 = mean.parse().unwrap(); + (name, mean) + }) + .collect(); + + let file = OpenOptions::new() + .create(true) + .truncate(true) + .write(true) + .open("measurements.txt") + .unwrap(); + + let uniform = Uniform::new(0, stations.len()).unwrap(); + let mut rng = rand::rng(); + + let mut writer = BufWriter::new(file); + + for _ in 0..1_000_000_000 { + let idx = rng.sample(uniform); + let station = stations[idx]; + + let gaussian = Normal::new(station.1, 10.).unwrap(); + writeln!(&mut writer, "{};{:.1}", station.0, rng.sample(gaussian)).unwrap(); + } +} diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} diff --git a/stations.txt b/stations.txt new file mode 100644 index 0000000..fb00a4a --- /dev/null +++ b/stations.txt @@ -0,0 +1,413 @@ +Abha,18.0 +Abidjan,26.0 +Abéché,29.4 +Accra,26.4 +Addis Ababa,16.0 +Adelaide,17.3 +Aden,29.1 +Ahvaz,25.4 +Albuquerque,14.0 +Alexandra,11.0 +Alexandria,20.0 +Algiers,18.2 +Alice Springs,21.0 +Almaty,10.0 +Amsterdam,10.2 +Anadyr,-6.9 +Anchorage,2.8 +Andorra la Vella,9.8 +Ankara,12.0 +Antananarivo,17.9 +Antsiranana,25.2 +Arkhangelsk,1.3 +Ashgabat,17.1 +Asmara,15.6 +Assab,30.5 +Astana,3.5 +Athens,19.2 +Atlanta,17.0 +Auckland,15.2 +Austin,20.7 +Baghdad,22.77 +Baguio,19.5 +Baku,15.1 +Baltimore,13.1 +Bamako,27.8 +Bangkok,28.6 +Bangui,26.0 +Banjul,26.0 +Barcelona,18.2 +Bata,25.1 +Batumi,14.0 +Beijing,12.9 +Beirut,20.9 +Belgrade,12.5 +Belize City,26.7 +Benghazi,19.9 +Bergen,7.7 +Berlin,10.3 +Bilbao,14.7 +Birao,26.5 +Bishkek,11.3 +Bissau,27.0 +Blantyre,22.2 +Bloemfontein,15.6 +Boise,11.4 +Bordeaux,14.2 +Bosaso,30.0 +Boston,10.9 +Bouaké,26.0 +Bratislava,10.5 +Brazzaville,25.0 +Bridgetown,27.0 +Brisbane,21.4 +Brussels,10.5 +Bucharest,10.8 +Budapest,11.3 +Bujumbura,23.8 +Bulawayo,18.9 +Burnie,13.1 +Busan,15.0 +Cabo San Lucas,23.9 +Cairns,25.0 +Cairo,21.4 +Calgary,4.4 +Canberra,13.1 +Cape Town,16.2 +Changsha,17.4 +Charlotte,16.1 +Chiang Mai,25.8 +Chicago,9.8 +Chihuahua,18.6 +Chișinău,10.2 +Chittagong,25.9 +Chongqing,18.6 +Christchurch,12.2 +City of San Marino,11.8 +Colombo,27.4 +Columbus,11.7 +Conakry,26.4 +Copenhagen,9.1 +Cotonou,27.2 +Cracow,9.3 +Da Lat,17.9 +Da Nang,25.8 +Dakar,24.0 +Dallas,19.0 +Damascus,17.0 +Dampier,26.4 +Dar es Salaam,25.8 +Darwin,27.6 +Denpasar,23.7 +Denver,10.4 +Detroit,10.0 +Dhaka,25.9 +Dikson,-11.1 +Dili,26.6 +Djibouti,29.9 +Dodoma,22.7 +Dolisie,24.0 +Douala,26.7 +Dubai,26.9 +Dublin,9.8 +Dunedin,11.1 +Durban,20.6 +Dushanbe,14.7 +Edinburgh,9.3 +Edmonton,4.2 +El Paso,18.1 +Entebbe,21.0 +Erbil,19.5 +Erzurum,5.1 +Fairbanks,-2.3 +Fianarantsoa,17.9 +Flores Petén,26.4 +Frankfurt,10.6 +Fresno,17.9 +Fukuoka,17.0 +Gabès,19.5 +Gaborone,21.0 +Gagnoa,26.0 +Gangtok,15.2 +Garissa,29.3 +Garoua,28.3 +George Town,27.9 +Ghanzi,21.4 +Gjoa Haven,-14.4 +Guadalajara,20.9 +Guangzhou,22.4 +Guatemala City,20.4 +Halifax,7.5 +Hamburg,9.7 +Hamilton,13.8 +Hanga Roa,20.5 +Hanoi,23.6 +Harare,18.4 +Harbin,5.0 +Hargeisa,21.7 +Hat Yai,27.0 +Havana,25.2 +Helsinki,5.9 +Heraklion,18.9 +Hiroshima,16.3 +Ho Chi Minh City,27.4 +Hobart,12.7 +Hong Kong,23.3 +Honiara,26.5 +Honolulu,25.4 +Houston,20.8 +Ifrane,11.4 +Indianapolis,11.8 +Iqaluit,-9.3 +Irkutsk,1.0 +Istanbul,13.9 +İzmir,17.9 +Jacksonville,20.3 +Jakarta,26.7 +Jayapura,27.0 +Jerusalem,18.3 +Johannesburg,15.5 +Jos,22.8 +Juba,27.8 +Kabul,12.1 +Kampala,20.0 +Kandi,27.7 +Kankan,26.5 +Kano,26.4 +Kansas City,12.5 +Karachi,26.0 +Karonga,24.4 +Kathmandu,18.3 +Khartoum,29.9 +Kingston,27.4 +Kinshasa,25.3 +Kolkata,26.7 +Kuala Lumpur,27.3 +Kumasi,26.0 +Kunming,15.7 +Kuopio,3.4 +Kuwait City,25.7 +Kyiv,8.4 +Kyoto,15.8 +La Ceiba,26.2 +La Paz,23.7 +Lagos,26.8 +Lahore,24.3 +Lake Havasu City,23.7 +Lake Tekapo,8.7 +Las Palmas de Gran Canaria,21.2 +Las Vegas,20.3 +Launceston,13.1 +Lhasa,7.6 +Libreville,25.9 +Lisbon,17.5 +Livingstone,21.8 +Ljubljana,10.9 +Lodwar,29.3 +Lomé,26.9 +London,11.3 +Los Angeles,18.6 +Louisville,13.9 +Luanda,25.8 +Lubumbashi,20.8 +Lusaka,19.9 +Luxembourg City,9.3 +Lviv,7.8 +Lyon,12.5 +Madrid,15.0 +Mahajanga,26.3 +Makassar,26.7 +Makurdi,26.0 +Malabo,26.3 +Malé,28.0 +Managua,27.3 +Manama,26.5 +Mandalay,28.0 +Mango,28.1 +Manila,28.4 +Maputo,22.8 +Marrakesh,19.6 +Marseille,15.8 +Maun,22.4 +Medan,26.5 +Mek'ele,22.7 +Melbourne,15.1 +Memphis,17.2 +Mexicali,23.1 +Mexico City,17.5 +Miami,24.9 +Milan,13.0 +Milwaukee,8.9 +Minneapolis,7.8 +Minsk,6.7 +Mogadishu,27.1 +Mombasa,26.3 +Monaco,16.4 +Moncton,6.1 +Monterrey,22.3 +Montreal,6.8 +Moscow,5.8 +Mumbai,27.1 +Murmansk,0.6 +Muscat,28.0 +Mzuzu,17.7 +N'Djamena,28.3 +Naha,23.1 +Nairobi,17.8 +Nakhon Ratchasima,27.3 +Napier,14.6 +Napoli,15.9 +Nashville,15.4 +Nassau,24.6 +Ndola,20.3 +New Delhi,25.0 +New Orleans,20.7 +New York City,12.9 +Ngaoundéré,22.0 +Niamey,29.3 +Nicosia,19.7 +Niigata,13.9 +Nouadhibou,21.3 +Nouakchott,25.7 +Novosibirsk,1.7 +Nuuk,-1.4 +Odesa,10.7 +Odienné,26.0 +Oklahoma City,15.9 +Omaha,10.6 +Oranjestad,28.1 +Oslo,5.7 +Ottawa,6.6 +Ouagadougou,28.3 +Ouahigouya,28.6 +Ouarzazate,18.9 +Oulu,2.7 +Palembang,27.3 +Palermo,18.5 +Palm Springs,24.5 +Palmerston North,13.2 +Panama City,28.0 +Parakou,26.8 +Paris,12.3 +Perth,18.7 +Petropavlovsk-Kamchatsky,1.9 +Philadelphia,13.2 +Phnom Penh,28.3 +Phoenix,23.9 +Pittsburgh,10.8 +Podgorica,15.3 +Pointe-Noire,26.1 +Pontianak,27.7 +Port Moresby,26.9 +Port Sudan,28.4 +Port Vila,24.3 +Port-Gentil,26.0 +Portland (OR),12.4 +Porto,15.7 +Prague,8.4 +Praia,24.4 +Pretoria,18.2 +Pyongyang,10.8 +Rabat,17.2 +Rangpur,24.4 +Reggane,28.3 +Reykjavík,4.3 +Riga,6.2 +Riyadh,26.0 +Rome,15.2 +Roseau,26.2 +Rostov-on-Don,9.9 +Sacramento,16.3 +Saint Petersburg,5.8 +Saint-Pierre,5.7 +Salt Lake City,11.6 +San Antonio,20.8 +San Diego,17.8 +San Francisco,14.6 +San Jose,16.4 +San José,22.6 +San Juan,27.2 +San Salvador,23.1 +Sana'a,20.0 +Santo Domingo,25.9 +Sapporo,8.9 +Sarajevo,10.1 +Saskatoon,3.3 +Seattle,11.3 +Ségou,28.0 +Seoul,12.5 +Seville,19.2 +Shanghai,16.7 +Singapore,27.0 +Skopje,12.4 +Sochi,14.2 +Sofia,10.6 +Sokoto,28.0 +Split,16.1 +St. John's,5.0 +St. Louis,13.9 +Stockholm,6.6 +Surabaya,27.1 +Suva,25.6 +Suwałki,7.2 +Sydney,17.7 +Tabora,23.0 +Tabriz,12.6 +Taipei,23.0 +Tallinn,6.4 +Tamale,27.9 +Tamanrasset,21.7 +Tampa,22.9 +Tashkent,14.8 +Tauranga,14.8 +Tbilisi,12.9 +Tegucigalpa,21.7 +Tehran,17.0 +Tel Aviv,20.0 +Thessaloniki,16.0 +Thiès,24.0 +Tijuana,17.8 +Timbuktu,28.0 +Tirana,15.2 +Toamasina,23.4 +Tokyo,15.4 +Toliara,24.1 +Toluca,12.4 +Toronto,9.4 +Tripoli,20.0 +Tromsø,2.9 +Tucson,20.9 +Tunis,18.4 +Ulaanbaatar,-0.4 +Upington,20.4 +Ürümqi,7.4 +Vaduz,10.1 +Valencia,18.3 +Valletta,18.8 +Vancouver,10.4 +Veracruz,25.4 +Vienna,10.4 +Vientiane,25.9 +Villahermosa,27.1 +Vilnius,6.0 +Virginia Beach,15.8 +Vladivostok,4.9 +Warsaw,8.5 +Washington D.C.,14.6 +Wau,27.8 +Wellington,12.9 +Whitehorse,-0.1 +Wichita,13.9 +Willemstad,28.0 +Winnipeg,3.0 +Wrocław,9.6 +Xi'an,14.1 +Yakutsk,-8.8 +Yangon,27.5 +Yaoundé,23.8 +Yellowknife,-4.3 +Yerevan,12.4 +Yinchuan,9.0 +Zagreb,10.7 +Zanzibar City,26.0 +Zürich,9.3