File indexing completed on 2024-04-28 11:20:35
0001 /* 0002 SPDX-FileCopyrightText: 2010 Miha Čančula <miha.cancula@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef OCTAVEEXTENSIONS_H 0008 #define OCTAVEEXTENSIONS_H 0009 0010 #include <extension.h> 0011 0012 #define OCTAVE_EXT_CDTOR_DECL(name) Octave##name##Extension(QObject* parent); \ 0013 ~Octave##name##Extension(); 0014 0015 class OctaveHistoryExtension : public Cantor::HistoryExtension 0016 { 0017 public: 0018 OCTAVE_EXT_CDTOR_DECL(History) 0019 QString lastResult() override; 0020 }; 0021 0022 class OctaveScriptExtension : public Cantor::ScriptExtension 0023 { 0024 public: 0025 OCTAVE_EXT_CDTOR_DECL(Script) 0026 QString scriptFileFilter() override; 0027 QString highlightingMode() override; 0028 QString runExternalScript(const QString& path) override; 0029 QString commandSeparator() override; 0030 }; 0031 0032 class OctavePlotExtension : public Cantor::PlotExtension 0033 { 0034 public: 0035 OCTAVE_EXT_CDTOR_DECL(Plot) 0036 QString plotFunction2d(const QString& function, const QString& variable, const QString& left, const QString& right) override; 0037 QString plotFunction3d(const QString& function, const VariableParameter& var1, const VariableParameter& var2) override; 0038 }; 0039 0040 class OctaveLinearAlgebraExtension : public Cantor::LinearAlgebraExtension 0041 { 0042 public: 0043 OCTAVE_EXT_CDTOR_DECL(LinearAlgebra) 0044 QString createVector(const QStringList& entries, VectorType type) override; 0045 QString nullVector(int size, VectorType type) override; 0046 QString createMatrix(const Cantor::LinearAlgebraExtension::Matrix& matrix) override; 0047 QString identityMatrix(int size) override; 0048 QString nullMatrix(int rows, int columns) override; 0049 QString rank(const QString& matrix) override; 0050 QString invertMatrix(const QString& matrix) override; 0051 QString charPoly(const QString& matrix) override; 0052 QString eigenVectors(const QString& matrix) override; 0053 QString eigenValues(const QString& matrix) override; 0054 }; 0055 0056 class OctaveVariableManagementExtension : public Cantor::VariableManagementExtension 0057 { 0058 public: 0059 OCTAVE_EXT_CDTOR_DECL(VariableManagement) 0060 QString addVariable(const QString& name, const QString& value) override; 0061 QString setValue(const QString& name, const QString& value) override; 0062 QString removeVariable(const QString& name) override; 0063 QString saveVariables(const QString& fileName) override; 0064 QString loadVariables(const QString& fileName) override; 0065 QString clearVariables() override; 0066 }; 0067 0068 class OctavePackagingExtension : public Cantor::PackagingExtension 0069 { 0070 public: 0071 OCTAVE_EXT_CDTOR_DECL(Packaging) 0072 QString importPackage(const QString& package) override; 0073 }; 0074 0075 #endif // OCTAVEEXTENSIONS_H