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