Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions include/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ set(Oasis_HEADERS
Oasis/EulerNumber.hpp
Oasis/Exponent.hpp
Oasis/Expression.hpp
Oasis/FwdDecls.hpp
Oasis/Imaginary.hpp
Oasis/Integral.hpp
Oasis/LeafExpression.hpp
Expand Down
48 changes: 48 additions & 0 deletions include/Oasis/FwdDecls.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
//
// Created by Matthew McCall on 12/9/25.
//

#ifndef OASIS_FWDDECLS_HPP
#define OASIS_FWDDECLS_HPP

namespace Oasis {
class Real;
class Imaginary;
class Matrix;
class Variable;
class Undefined;
class EulerNumber;
class Pi;

template <IExpression, IExpression>
class Add;

template <IExpression MinuendT, IExpression SubtrahendT>
class Subtract;

template <IExpression MultiplicandT, IExpression MultiplierT>
class Multiply;

template <IExpression DividendT, IExpression DivisorT>
class Divide;

template <IExpression BaseT, IExpression PowerT>
class Exponent;

template <IExpression BaseT, IExpression ArgumentT>
class Log;

template <typename OperandT>
class Negate;

template <typename OperandT>
class Magnitude;

template <IExpression, IExpression>
class Derivative;

template <IExpression Integrand, IExpression Differential>
class Integral;
}

#endif // OASIS_FWDDECLS_HPP
39 changes: 1 addition & 38 deletions include/Oasis/Visit.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,48 +5,11 @@
#ifndef OASIS_SERIALIZATION_HPP
#define OASIS_SERIALIZATION_HPP

#include "FwdDecls.hpp"
#include "Expression.hpp"

namespace Oasis {

class Real;
class Imaginary;
class Matrix;
class Variable;
class Undefined;
class EulerNumber;
class Pi;

template <IExpression, IExpression>
class Add;

template <IExpression MinuendT, IExpression SubtrahendT>
class Subtract;

template <IExpression MultiplicandT, IExpression MultiplierT>
class Multiply;

template <IExpression DividendT, IExpression DivisorT>
class Divide;

template <IExpression BaseT, IExpression PowerT>
class Exponent;

template <IExpression BaseT, IExpression ArgumentT>
class Log;

template <typename OperandT>
class Negate;

template <typename OperandT>
class Magnitude;

template <IExpression, IExpression>
class Derivative;

template <IExpression Integrand, IExpression Differential>
class Integral;

class Visitor {
public:
virtual any Visit(const Real& real) = 0;
Expand Down
Loading