extern crate bit_set;
#[cfg(feature = "blis")]
extern crate blis_src;
#[macro_use]
extern crate custom_debug_derive;
#[macro_use]
extern crate derive_new;
#[macro_use]
extern crate downcast_rs;
#[macro_use]
extern crate error_chain;
#[cfg(feature = "image_ops")]
extern crate image;
extern crate insideout;
#[allow(unused_imports)]
#[macro_use]
extern crate itertools;
#[allow(unused_imports)]
#[macro_use]
extern crate log;
#[allow(unused_imports)]
#[macro_use]
pub extern crate ndarray;
extern crate num_integer;
extern crate num_traits;
#[macro_use]
extern crate maplit;
#[cfg(test)]
extern crate matrixmultiply;
#[macro_use]
extern crate objekt;
#[cfg(test)]
#[macro_use]
extern crate proptest;
#[cfg(feature = "serialize")]
extern crate serde;
#[cfg(test)]
extern crate simplelog;
extern crate smallvec;
#[cfg(feature = "serialize")]
#[macro_use]
extern crate serde_derive;
extern crate tract_linalg;
#[macro_use]
pub mod macros;
#[macro_use]
pub mod analyser;
#[macro_use]
pub mod ops;
pub mod broadcast;
pub mod context;
pub mod datum;
pub mod dim;
pub mod errors;
pub mod model;
mod ndarray_dummy_packed_mm;
pub mod optim;
pub mod plan;
pub mod pulse;
pub mod tensor;
pub use crate::errors::*;
pub use crate::analyser::types::TensorFact;
pub use crate::datum::DatumType;
pub use crate::dim::TDim;
pub use crate::model::{Model, Node, TVec};
pub use crate::plan::{SimplePlan, SimpleState};
pub use crate::tensor::{SharedTensor, Tensor};
#[cfg(test)]
#[allow(dead_code)]
fn setup_test_logger() {
use simplelog::{Config, LevelFilter, TermLogger};
TermLogger::init(LevelFilter::Trace, Config::default()).unwrap()
}
pub trait Tractify<Other>: Sized {
fn tractify(t: &Other) -> TractResult<Self>;
}
pub trait ToTract<Tract>: Sized {
fn tractify(&self) -> TractResult<Tract>;
}
impl<PB, Tract: Tractify<PB>> crate::ToTract<Tract> for PB {
fn tractify(&self) -> TractResult<Tract> {
Tract::tractify(self)
}
}