1#![allow(clippy::len_zero)]
2#![allow(clippy::missing_safety_doc)]
3#![allow(clippy::redundant_closure_call)]
4#[cfg(feature="blas")]
49extern crate cblas;
50#[cfg(feature="accelerate")]
51extern crate accelerate_src;
52#[cfg(feature="blis")]
53extern crate blis_src;
54#[cfg(feature="openblas")]
55extern crate openblas_src;
56
57extern crate bit_set;
58#[macro_use]
59extern crate derive_new;
60#[macro_use]
61pub extern crate downcast_rs;
62#[allow(unused_imports)]
63#[macro_use]
64extern crate log;
65#[allow(unused_imports)]
66#[macro_use]
67pub extern crate ndarray;
68#[cfg(test)]
69extern crate env_logger;
70pub extern crate num_traits;
71#[cfg(test)]
72extern crate proptest;
73
74pub extern crate tract_data;
75pub extern crate tract_linalg;
76
77#[macro_use]
78pub mod macros;
79#[macro_use]
80pub mod ops;
81
82pub mod axes;
83pub mod broadcast;
84pub mod framework;
85pub mod floats;
86pub mod model;
87pub mod optim;
88pub mod plan;
89pub mod runtime;
90pub mod transform;
91pub mod value;
92
93pub use dyn_clone;
94
95mod late_bind;
96
97pub mod prelude {
99 pub use crate::framework::Framework;
100 pub use crate::model::*;
101 pub use crate::plan::{SimplePlan, SimpleState, PlanOptions};
102 pub use crate::value::{IntoTValue, TValue};
103 pub use std::sync::Arc;
104 pub use tract_data::prelude::*;
105
106 pub use ndarray as tract_ndarray;
107 pub use num_traits as tract_num_traits;
108 pub use tract_data;
109 pub use tract_linalg;
110 pub use tract_linalg::multithread;
111}
112
113pub mod internal {
115 pub use crate::axes::{AxesMapping, Axis};
116 pub use crate::late_bind::*;
117 pub use crate::model::*;
118 pub use crate::ops::change_axes::*;
119 pub use crate::ops::element_wise::ElementWiseMiniOp;
120 pub use crate::ops::{Cost, EvalOp, FrozenOpState, Op, OpState, Validation};
121 pub use crate::plan::{ SessionState, SessionStateHandler };
122 pub use crate::prelude::*;
123 pub use dims;
124 pub use downcast_rs as tract_downcast_rs;
125 pub use std::borrow::Cow;
126 pub use std::collections::HashMap;
127 pub use std::hash::Hash;
128 pub use std::marker::PhantomData;
129 pub use tract_data::internal::*;
130 pub use tract_data::{
131 dispatch_copy, dispatch_datum, dispatch_datum_by_size, dispatch_floatlike, dispatch_numbers,
132 };
133 pub use tvec;
134 pub use {args_1, args_2, args_3, args_4, args_5, args_6, args_7, args_8};
135 pub use {as_op, impl_op_same_as, not_a_typed_op, op_as_typed_op};
136 pub use {bin_to_super_type, element_wise, element_wise_oop};
137 pub use crate::runtime::{Runtime, Runnable, State, DefaultRuntime};
138}
139
140#[cfg(test)]
141#[allow(dead_code)]
142fn setup_test_logger() {
143 let _ = env_logger::Builder::from_env("TRACT_LOG").try_init();
144}