OASIS
Open Algebra Software
Loading...
Searching...
No Matches
BinaryExpression.hpp File Reference
#include <algorithm>
#include <cassert>
#include <functional>
#include <list>
#include "Expression.hpp"
#include "RecursiveCast.hpp"
#include "Serialization.hpp"
Include dependency graph for BinaryExpression.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Oasis::BinaryExpression< DerivedT, MostSigOpT, LeastSigOpT >
 A binary expression. More...
 

Namespaces

namespace  Oasis
 

Concepts

concept  Oasis::IOperand
 A concept for an operand of a binary expression.
 
concept  Oasis::IAssociativeAndCommutative
 

Functions

template<template< typename, typename > typename T>
requires IAssociativeAndCommutative<T>
auto Oasis::BuildFromVector (const std::vector< std::unique_ptr< Expression > > &ops) -> std::unique_ptr< T< Expression, Expression > >
 Builds a reasonably balanced binary expression from a vector of operands.