Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2915-AbsoluteSymbol/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interpreter/BatchOperations.cs @ 16304

Last change on this file since 16304 was 16304, checked in by lkammere, 5 years ago

#2915: Merge changes in the trunk to current HEAD into the branch.

File size: 2.3 KB
RevLine 
[16285]1using System;
2
3namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
4  public static class BatchOperations {
5    public const int BATCHSIZE = 64;
6
7    public static void Load(double[] a, double[] b) {
8      Array.Copy(b, a, BATCHSIZE);
9    }
10
11    public static void Add(double[] a, double[] b) {
[16287]12      for (int i = 0; i < BATCHSIZE; ++i) {
13        a[i] += b[i];
[16285]14      }
15    }
16
17    public static void Sub(double[] a, double[] b) {
[16287]18      for (int i = 0; i < BATCHSIZE; ++i) {
19        a[i] -= b[i];
[16285]20      }
21    }
22
23    public static void Div(double[] a, double[] b) {
[16287]24      for (int i = 0; i < BATCHSIZE; ++i) {
25        a[i] /= b[i];
[16285]26      }
27    }
28
29    public static void Mul(double[] a, double[] b) {
[16287]30      for (int i = 0; i < BATCHSIZE; ++i) {
31        a[i] *= b[i];
[16285]32      }
33    }
34
35    public static void Neg(double[] a, double[] b) {
[16287]36      for (int i = 0; i < BATCHSIZE; ++i) {
37        a[i] = -b[i];
[16285]38      }
39    }
40
41    public static void Inv(double[] a, double[] b) {
[16287]42      for (int i = 0; i < BATCHSIZE; ++i) {
43        a[i] = 1 / b[i];
[16285]44      }
45    }
46
47    public static void Log(double[] a, double[] b) {
48      for (int i = 0; i < BATCHSIZE; ++i)
49        a[i] = Math.Log(b[i]);
50    }
51
52    public static void Exp(double[] a, double[] b) {
53      for (int i = 0; i < BATCHSIZE; ++i)
54        a[i] = Math.Exp(b[i]);
55    }
56
57    public static void Sin(double[] a, double[] b) {
58      for (int i = 0; i < BATCHSIZE; ++i)
59        a[i] = Math.Sin(b[i]);
60    }
61
62    public static void Cos(double[] a, double[] b) {
63      for (int i = 0; i < BATCHSIZE; ++i)
64        a[i] = Math.Cos(b[i]);
65    }
[16293]66
67    public static void Tan(double[] a, double[] b) {
68      for (int i = 0; i < BATCHSIZE; ++i)
69        a[i] = Math.Tan(b[i]);
70    }
71
72    public static void Pow(double[] a, double[] b) {
73      for (int i = 0; i < BATCHSIZE; ++i)
74        a[i] = Math.Pow(a[i], Math.Round(b[i]));
75    }
76
77    public static void Root(double[] a, double[] b) {
78      for (int i = 0; i < BATCHSIZE; ++i)
79        a[i] = Math.Pow(a[i], 1 / Math.Round(b[i]));
80    }
81
82    public static void Square(double[] a, double[] b) {
83      for (int i = 0; i < BATCHSIZE; ++i)
84        a[i] = Math.Pow(b[i], 2d);
85    }
86
87    public static void Sqrt(double[] a, double[] b) {
88      for (int i = 0; i < BATCHSIZE; ++i)
89        a[i] = Math.Sqrt(b[i]);
90    }
[16285]91  }
92}
Note: See TracBrowser for help on using the repository browser.