diff --git a/BSP_1_D/bsp_1_d.cbp b/BSP_1_D/bsp_1_d.cbp
new file mode 100644
index 0000000..b750014
--- /dev/null
+++ b/BSP_1_D/bsp_1_d.cbp
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BSP_1_D/bsp_1_d.cpp b/BSP_1_D/bsp_1_d.cpp
new file mode 100644
index 0000000..6125d10
--- /dev/null
+++ b/BSP_1_D/bsp_1_d.cpp
@@ -0,0 +1,34 @@
+#include "bsp_1_d.h"
+
+#include // assert()
+#include
+
+using namespace std;
+
+double scalar(vector const &x, vector const &y)
+{
+ assert(x.size() == y.size()); // switch off via compile flag: -DNDEBUG
+ size_t const N = x.size();
+ double sum = 0.0;
+ for (size_t i = 0; i < N; ++i)
+ {
+ sum += x[i] * y[i];
+ }
+ return sum;
+}
+
+double Kahan_skalar(vector const &x, vector const &y)
+{
+ assert(x.size() == y.size()); // switch off via compile flag: -DNDEBUG
+ size_t const N = x.size();
+ double sum = 0.0;
+ double c = 0.0;
+ for (size_t i = 0; i < N; ++i)
+ {
+ double z = x[i]*y[i] - c;
+ double t = sum + z;
+ c = (t - sum) - z;
+ sum = t;
+ }
+ return sum;
+}
diff --git a/BSP_1_D/bsp_1_d.h b/BSP_1_D/bsp_1_d.h
new file mode 100644
index 0000000..097ba0c
--- /dev/null
+++ b/BSP_1_D/bsp_1_d.h
@@ -0,0 +1,25 @@
+#ifndef BSP_1_D_H_INCLUDED
+#define BSP_1_D_H_INCLUDED
+
+#include
+
+/** \brief Berechnet das Skalarprodukt zweier Vektoren
+ *
+ * \param[in] x erster Vektor
+ * \param[in] y zweiter Vektor
+ * \return Skalarprodukt von @x und @y
+ *
+ */
+double scalar(std::vector const &x, std::vector const &y);
+
+
+/** \brief Berechnet das Skalarprodukt zweier Vektoren unter Anwendung der Kahan-Summation
+ *
+ * \param[in] x erster Vektor
+ * \param[in] y zweiter Vektor
+ * \return Skalarprodukt von @x und @y
+ *
+ */
+double Kahan_skalar(std::vector const &x, std::vector const &y);
+
+#endif // BSP_1_D_H_INCLUDED
diff --git a/BSP_1_D/main.cpp b/BSP_1_D/main.cpp
new file mode 100644
index 0000000..d57d121
--- /dev/null
+++ b/BSP_1_D/main.cpp
@@ -0,0 +1,28 @@
+#include "bsp_1_d.h"
+#include
+#include
+// BSP 1_D
+using namespace std;
+
+int main()
+{
+ vector nvec{100,500,1000,10000,100000,1000000,10000000,100000000}; // Vektor mit verschiedene n zum Testen
+ double exact = M_PI*M_PI/6;
+ for(size_t k = 0; k x;
+ for(int i = 0; i