1 /* 2 SPDX-FileCopyrightText: 2010 Miha Čančula <miha.cancula@gmail.com> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #ifndef OCTAVEEXTENSIONS_H 8 #define OCTAVEEXTENSIONS_H 9 10 #include <extension.h> 11 12 #define OCTAVE_EXT_CDTOR_DECL(name) Octave##name##Extension(QObject* parent); \ 13 ~Octave##name##Extension(); 14 15 class OctaveHistoryExtension : public Cantor::HistoryExtension 16 { 17 public: 18 OCTAVE_EXT_CDTOR_DECL(History) 19 QString lastResult() override; 20 }; 21 22 class OctaveScriptExtension : public Cantor::ScriptExtension 23 { 24 public: 25 OCTAVE_EXT_CDTOR_DECL(Script) 26 QString scriptFileFilter() override; 27 QString highlightingMode() override; 28 QString runExternalScript(const QString& path) override; 29 QString commandSeparator() override; 30 }; 31 32 class OctavePlotExtension : public Cantor::PlotExtension 33 { 34 public: 35 OCTAVE_EXT_CDTOR_DECL(Plot) 36 QString plotFunction2d(const QString& function, const QString& variable, const QString& left, const QString& right) override; 37 QString plotFunction3d(const QString& function, const VariableParameter& var1, const VariableParameter& var2) override; 38 }; 39 40 class OctaveLinearAlgebraExtension : public Cantor::LinearAlgebraExtension 41 { 42 public: 43 OCTAVE_EXT_CDTOR_DECL(LinearAlgebra) 44 QString createVector(const QStringList& entries, VectorType type) override; 45 QString nullVector(int size, VectorType type) override; 46 QString createMatrix(const Cantor::LinearAlgebraExtension::Matrix& matrix) override; 47 QString identityMatrix(int size) override; 48 QString nullMatrix(int rows, int columns) override; 49 QString rank(const QString& matrix) override; 50 QString invertMatrix(const QString& matrix) override; 51 QString charPoly(const QString& matrix) override; 52 QString eigenVectors(const QString& matrix) override; 53 QString eigenValues(const QString& matrix) override; 54 }; 55 56 class OctaveVariableManagementExtension : public Cantor::VariableManagementExtension 57 { 58 public: 59 OCTAVE_EXT_CDTOR_DECL(VariableManagement) 60 QString addVariable(const QString& name, const QString& value) override; 61 QString setValue(const QString& name, const QString& value) override; 62 QString removeVariable(const QString& name) override; 63 QString saveVariables(const QString& fileName) override; 64 QString loadVariables(const QString& fileName) override; 65 QString clearVariables() override; 66 }; 67 68 class OctavePackagingExtension : public Cantor::PackagingExtension 69 { 70 public: 71 OCTAVE_EXT_CDTOR_DECL(Packaging) 72 QString importPackage(const QString& package) override; 73 }; 74 75 #endif // OCTAVEEXTENSIONS_H 76