From 174e3841cdd19359ee95cf32cf8bbe9b6e9b7332 Mon Sep 17 00:00:00 2001 From: "g.mandl" Date: Thu, 23 Oct 2025 00:49:21 +0200 Subject: [PATCH] =?UTF-8?q?Dateien=20nach=20=E2=80=9EBSP=5F1=5FG=E2=80=9C?= =?UTF-8?q?=20hochladen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BSP_1_G/bsp_1_g.cbp | 48 ++++++++++++++++++ BSP_1_G/main.cpp | 109 ++++++++++++++++++++++++++++++++++++++++ BSP_1_G/matrixdense.cpp | 53 +++++++++++++++++++ BSP_1_G/matrixdense.h | 32 ++++++++++++ 4 files changed, 242 insertions(+) create mode 100644 BSP_1_G/bsp_1_g.cbp create mode 100644 BSP_1_G/main.cpp create mode 100644 BSP_1_G/matrixdense.cpp create mode 100644 BSP_1_G/matrixdense.h diff --git a/BSP_1_G/bsp_1_g.cbp b/BSP_1_G/bsp_1_g.cbp new file mode 100644 index 0000000..501cab4 --- /dev/null +++ b/BSP_1_G/bsp_1_g.cbp @@ -0,0 +1,48 @@ + + + + + + diff --git a/BSP_1_G/main.cpp b/BSP_1_G/main.cpp new file mode 100644 index 0000000..28e8d15 --- /dev/null +++ b/BSP_1_G/main.cpp @@ -0,0 +1,109 @@ +#include "matrixdense.h" +#include "matrixprod.h" +#include "sigmoid.h" +#include +#include +#include +// BSP 1_G +using namespace std; + +int main() +{ + // ---- b ---- + MatrixDense const M(5,3); + // Dense matrix, also initialized + vector const u{1,2,3}; + vector f1 = M.Mult(u); + cout << "M*u = "; + for(size_t k=0; k const v{-1,2,-3,4,-5}; + vector f2 = M.MultT(v); + cout << "M^t*v = "; + for(size_t k=0; k x(n,2.0); + vector fa, fb; + + auto time1start = std::chrono::system_clock::now(); + for(int k=0; k(time1end - time1start); + + auto time2start = std::chrono::system_clock::now(); + for(int k=0; k(time2end - time2start); + + cout << "Zeit fuer Mult pro loop " << time1.count() << " ms" << endl; + cout << "Zeit fuer MultT pro loop " << time2.count() << " ms" << endl; + + // Check ob beide Ergebnisse gleich sind + vector err(fa.size()); + for(size_t k = 0; k u1(n,0); + for(size_t k=0; k y(n,2.0); + vector fc, fd; + + auto time3start = std::chrono::system_clock::now(); + for(int k=0; k(time3end - time3start); + + auto time4start = std::chrono::system_clock::now(); + for(int k=0; k(time4end - time4start); + + cout << "Zeit fuer Mult pro loop " << time3.count() << " ms" << endl; + cout << "Zeit fuer MultT pro loop " << time4.count() << " ms" << endl; + + // Check ob beide Ergebnisse gleich sind + vector err1(fc.size()); + for(size_t k = 0; k(n*m); + int nm = max(n,m); + for(int i = 0; i MatrixDense::Mult(const vector &x) const +{ + vector y(nrow,0); + for(int n=0; n MatrixDense::MultT(const vector &x) const +{ + vector y(mcol,0); + for(int m=0; m + +using namespace std; + +class MatrixDense +{ + public: + /** Default constructor */ + MatrixDense(); + /** Constructor */ + MatrixDense(int n, int m); + + vector Mult(const vector &x) const; + + vector MultT(const vector &x) const; + + /** Default destructor */ + virtual ~MatrixDense(); + + + protected: + + private: + vector mat; //!< Member variable "m" + int nrow; //!< Member variable "nrow" + int mcol; //!< Member variable "mcol" +}; + +#endif // MATRIXDENSE_H