use crate::ir::DataType;
use crate::ir::Program;
use crate::ops::AlgebraicLaw;
use crate::ops::OpSpec;
impl ReduceAny {
pub const SPEC: OpSpec = OpSpec::composition(
"reductions.reduce_any",
INPUTS,
OUTPUTS,
LAWS,
Self::program,
);
#[must_use]
pub fn program() -> Program {
crate::ops::reductions::programs::reduce_bool_program(false, crate::ir::Expr::or)
}
}
pub const INPUTS: &[DataType] = &[DataType::Bool];
pub const LAWS: &[AlgebraicLaw] = &[
AlgebraicLaw::Associative,
AlgebraicLaw::Identity { element: 0 },
];
pub const OUTPUTS: &[DataType] = &[DataType::Bool];
#[derive(Debug, Clone, Copy, Default)]
pub struct ReduceAny;