From 412557460a6a7457b15a8890c9d7fe47f9b2b731 Mon Sep 17 00:00:00 2001 From: Erik Alexander Sandvik Date: Sat, 19 Oct 2019 15:35:39 +0200 Subject: [PATCH] Added programs --- compiling_error.txt | 4 ++++ function_as_argument.cpp | 11 ++++++++++ test.cpp | 46 ++++++++++++++++++---------------------- test.h | 5 +++++ test2.cpp | 19 +++++++++++++++++ testMPI.cpp | 24 +++++++++++++++++++++ tuple.cpp | 12 +++++++++++ 7 files changed, 96 insertions(+), 25 deletions(-) create mode 100644 compiling_error.txt create mode 100644 function_as_argument.cpp create mode 100644 test.h create mode 100644 test2.cpp create mode 100644 testMPI.cpp create mode 100644 tuple.cpp diff --git a/compiling_error.txt b/compiling_error.txt new file mode 100644 index 0000000..708fe71 --- /dev/null +++ b/compiling_error.txt @@ -0,0 +1,4 @@ +/home/erik/Documents/cpp/test.cpp: In function ‘double g(double (*)())’: +/home/erik/Documents/cpp/test.cpp:15:11: error: invalid operands of types ‘int’ and ‘double (*)()’ to binary ‘operator*’ + return 2*f; + ~^~ diff --git a/function_as_argument.cpp b/function_as_argument.cpp new file mode 100644 index 0000000..7c9f461 --- /dev/null +++ b/function_as_argument.cpp @@ -0,0 +1,11 @@ +double Gaussian_Legendre(double a,double b,int n, function f){ + double *x = new double[n]; + double *w = new double[n]; + + gauleg(a,b,x,w,n); + double integral = 0; + for (int i=0; i -#include -#include -#include -#include -#include -#include -#include -using namespace std; - - -int func(int, int); - -int main() -{ - - int a = 1, b = 2; - cout << func(a, b); - return 0; -} - -int func(int a, int b) -{ - return a + b; -} +#include + +using namespace std; + +double g(double f()); +double f(double x); + +int main() +{ + return 0; +} + +double g(double f()) +{ + return 2*f; +} + +double f(double x) +{ + return 2*x; +} diff --git a/test.h b/test.h new file mode 100644 index 0000000..b835a2e --- /dev/null +++ b/test.h @@ -0,0 +1,5 @@ + +double* returnarray(double* b) +{ + return b; +} diff --git a/test2.cpp b/test2.cpp new file mode 100644 index 0000000..496648f --- /dev/null +++ b/test2.cpp @@ -0,0 +1,19 @@ +#include +#include + +using namespace std; + +double func(double x); + +int main() +{ + + return 0; +} + +double func(double x) +{ + double value; + value = 4/(1.+x*x); + return value; +} // end of function to evaluate diff --git a/testMPI.cpp b/testMPI.cpp new file mode 100644 index 0000000..de56edd --- /dev/null +++ b/testMPI.cpp @@ -0,0 +1,24 @@ +#include +#include +#define CHUNKSIZE 100 +#define N 10 + +using namespace std; + +int main (int argc, char *argv[]) +{ +int i, chunk; +float a[N], b[N], c[N]; +for (i=0; i < N; i++) a[i] = b[i] = i * 1.0; +chunk = CHUNKSIZE; +#pragma omp parallel shared(a,b,c,chunk) private(i) +{ +#pragma omp for schedule(dynamic,chunk) +for (i=0; i < N; i++) c[i] = a[i] + b[i]; +} /* end of parallel region */ + +for (int j = 0; j != N; ++j) { + cout << c[i] << endl; +} + +} diff --git a/tuple.cpp b/tuple.cpp new file mode 100644 index 0000000..c4d988a --- /dev/null +++ b/tuple.cpp @@ -0,0 +1,12 @@ +#include +#include + +using namespace std; + +int main() +{ + double a = 0, b = 2, c = 3, d = 5; + auto args = make_tuple (a, b, c ,d); + cout << get<1>(args); + return 0; +}