rstsr_core/
lib.rs

1#![cfg_attr(not(test), no_std)]
2#![doc = include_str!("docs/lib.md")]
3#![allow(unknown_lints)]
4// This option is for myself as python-like developer.
5#![allow(clippy::needless_return)]
6// Resolution to something like `tensor.slice_mut() += scalar`.
7// This code is not allowed in rust, but `*&mut tensor.slice_mut() += scalar` is allowed.
8#![allow(clippy::deref_addrof)]
9// Allow `a % b == 0` instead of `is_multiple_of`
10// which is only stabilized after rustc 1.89
11#![allow(clippy::manual_is_multiple_of)]
12
13// this line is for docs
14#[allow(unused_imports)]
15use crate::prelude::rstsr_funcs::*;
16#[allow(unused_imports)]
17use crate::prelude::rstsr_structs::*;
18#[allow(unused_imports)]
19use crate::prelude::rstsr_traits::*;
20
21pub mod prelude;
22pub mod prelude_dev;
23
24pub mod storage;
25pub mod tensor;
26pub mod tensorbase;
27pub use tensorbase::{
28    Tensor, TensorAny, TensorArc, TensorBase, TensorCow, TensorMut, TensorRef, TensorReference, TensorView,
29    TensorViewMut,
30};
31
32pub mod format;
33
34#[cfg(feature = "rayon")]
35pub mod feature_rayon;
36
37#[cfg(feature = "faer")]
38pub mod device_faer;
39
40pub mod device_cpu_serial;
41
42mod dev_utilities;
43
44#[cfg(feature = "faer_as_default")]
45pub type DeviceCpu = device_faer::device::DeviceFaer;
46
47#[cfg(not(feature = "faer_as_default"))]
48pub type DeviceCpu = device_cpu_serial::DeviceCpuSerial;
49
50pub mod array_api_standard {
51    #![doc = include_str!("docs/array_api_standard.md")]
52    #![allow(unused_imports)]
53
54    use crate::prelude::*;
55    use crate::prelude_dev::Indexer;
56    use core::ops::*;
57    use num::complex::ComplexFloat;
58    use num::{pow::Pow, Complex, Float, Integer, Num, Signed};
59    use rstsr_dtype_traits::*;
60    use rt::*;
61}
62
63pub mod api_specification {
64    #![doc = include_str!("docs/api_specification.md")]
65    #![allow(unused_imports)]
66
67    use crate::prelude::*;
68    use rt::*;
69    extern crate alloc;
70    use crate as rstsr_core;
71}