summaryrefslogtreecommitdiffstats
path: root/mat/domace_naloge/30/kompleksnost.c
diff options
context:
space:
mode:
Diffstat (limited to 'mat/domace_naloge/30/kompleksnost.c')
-rw-r--r--mat/domace_naloge/30/kompleksnost.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/mat/domace_naloge/30/kompleksnost.c b/mat/domace_naloge/30/kompleksnost.c
new file mode 100644
index 0000000..ae36c99
--- /dev/null
+++ b/mat/domace_naloge/30/kompleksnost.c
@@ -0,0 +1,27 @@
+/* gcc kompleksnost.c -pedantic -E -Wall -Wextra -g -okompleksnost -lm -O0 */
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <time.h>
+#define KOLIKOKRAT 10000001
+#define nrx(x, y) powl((x), 1.0 / (y)) /* nti koren izpeljemo iz potence na 1/eks */
+int main (void) { /* za kvadratne in kubicne korene uporabimo sqrt in cbrt */
+ long double rezultat = 0; /* da prevajalnik ne bi optimiziral */
+ long double rezultat2 = 0;
+ clock_t cas_zacetek, cas_konec, cas2_konec;
+ cas_zacetek = clock();
+ for (unsigned long long int x = 2; x <= KOLIKOKRAT; x++)
+ rezultat += cbrtl(powl(x, 2)/(x-1))*sqrtl(powl(x-1, 2)/powl(x, 5))*nrx(powl(x, 20)/powl(x+1, 3), 6)*sqrtl((x+1)/powl(x, 3));
+ cas_konec = clock();
+ for (unsigned long long int x = 2; x <= KOLIKOKRAT; x++)
+ rezultat2 += nrx(pow(x-1, 2), 3);
+ cas2_konec = clock();
+ fprintf(stdout, "neoptimizirana enacba je za 10e6 iteracij porabila %lf sekund, optimizirana pa %lf\n"
+ "rezultat = %Lf, rezultat2 = %Lf\n",
+ ((double) (cas_konec-cas_zacetek))/CLOCKS_PER_SEC,
+ ((double) (cas2_konec-cas_konec))/CLOCKS_PER_SEC,
+ rezultat,
+ rezultat2
+ );
+ return 0;
+}