Monday, April 29, 2013

compare of double*[N] and double**

  const int size1 = 64;
  const int size2 = 12;
  int nofRuns = 100000;

  double u[size1][size2];
sum= 3609600000.000000, It took me 295 clocks (0.295000 seconds).
u -> 3528780:
u[0] 3528780 + 96       10  11  12  13  14  15  16  17  18  19  20  21
u[1] 3528876 + 96       11  12  13  14  15  16  17  18  19  20  21  22
u[2] 3528972 + 96       12  13  14  15  16  17  18  19  20  21  22  23
u[3] 3529068 + 96       13  14  15  16  17  18  19  20  21  22  23  24
u[4] 3529164 + 96       14  15  16  17  18  19  20  21  22  23  24  25
u[5] 3529260 + 96       15  16  17  18  19  20  21  22  23  24  25  26
u[6] 3529356 + 96       16  17  18  19  20  21  22  23  24  25  26  27
u[7] 3529452 + 96       17  18  19  20  21  22  23  24  25  26  27  28
u[8] 3529548 + 96       18  19  20  21  22  23  24  25  26  27  28  29
u[9] 3529644 + 96       19  20  21  22  23  24  25  26  27  28  29  30
u[10] 3529740 + 96      20  21  22  23  24  25  26  27  28  29  30  31
u[11] 3529836 + 96      21  22  23  24  25  26  27  28  29  30  31  32
u[12] 3529932 + 96      22  23  24  25  26  27  28  29  30  31  32  33
u[13] 3530028 + 96      23  24  25  26  27  28  29  30  31  32  33  34
u[14] 3530124 + 96      24  25  26  27  28  29  30  31  32  33  34  35
u[15] 3530220 + 96      25  26  27  28  29  30  31  32  33  34  35  36
u[16] 3530316 + 96      26  27  28  29  30  31  32  33  34  35  36  37
u[17] 3530412 + 96      27  28  29  30  31  32  33  34  35  36  37  38
u[18] 3530508 + 96      28  29  30  31  32  33  34  35  36  37  38  39
u[19] 3530604 + 96      29  30  31  32  33  34  35  36  37  38  39  40
u[20] 3530700 + 96      30  31  32  33  34  35  36  37  38  39  40  41
u[21] 3530796 + 96      31  32  33  34  35  36  37  38  39  40  41  42
u[22] 3530892 + 96      32  33  34  35  36  37  38  39  40  41  42  43
u[23] 3530988 + 96      33  34  35  36  37  38  39  40  41  42  43  44
u[24] 3531084 + 96      34  35  36  37  38  39  40  41  42  43  44  45
u[25] 3531180 + 96      35  36  37  38  39  40  41  42  43  44  45  46
u[26] 3531276 + 96      36  37  38  39  40  41  42  43  44  45  46  47
u[27] 3531372 + 96      37  38  39  40  41  42  43  44  45  46  47  48
u[28] 3531468 + 96      38  39  40  41  42  43  44  45  46  47  48  49
u[29] 3531564 + 96      39  40  41  42  43  44  45  46  47  48  49  50
u[30] 3531660 + 96      40  41  42  43  44  45  46  47  48  49  50  51
u[31] 3531756 + 96      41  42  43  44  45  46  47  48  49  50  51  52
u[32] 3531852 + 96      42  43  44  45  46  47  48  49  50  51  52  53
u[33] 3531948 + 96      43  44  45  46  47  48  49  50  51  52  53  54
u[34] 3532044 + 96      44  45  46  47  48  49  50  51  52  53  54  55
u[35] 3532140 + 96      45  46  47  48  49  50  51  52  53  54  55  56
u[36] 3532236 + 96      46  47  48  49  50  51  52  53  54  55  56  57
u[37] 3532332 + 96      47  48  49  50  51  52  53  54  55  56  57  58
u[38] 3532428 + 96      48  49  50  51  52  53  54  55  56  57  58  59
u[39] 3532524 + 96      49  50  51  52  53  54  55  56  57  58  59  60
u[40] 3532620 + 96      50  51  52  53  54  55  56  57  58  59  60  61
u[41] 3532716 + 96      51  52  53  54  55  56  57  58  59  60  61  62
u[42] 3532812 + 96      52  53  54  55  56  57  58  59  60  61  62  63
u[43] 3532908 + 96      53  54  55  56  57  58  59  60  61  62  63  64
u[44] 3533004 + 96      54  55  56  57  58  59  60  61  62  63  64  65
u[45] 3533100 + 96      55  56  57  58  59  60  61  62  63  64  65  66
u[46] 3533196 + 96      56  57  58  59  60  61  62  63  64  65  66  67
u[47] 3533292 + 96      57  58  59  60  61  62  63  64  65  66  67  68
u[48] 3533388 + 96      58  59  60  61  62  63  64  65  66  67  68  69
u[49] 3533484 + 96      59  60  61  62  63  64  65  66  67  68  69  70
u[50] 3533580 + 96      60  61  62  63  64  65  66  67  68  69  70  71
u[51] 3533676 + 96      61  62  63  64  65  66  67  68  69  70  71  72
u[52] 3533772 + 96      62  63  64  65  66  67  68  69  70  71  72  73
u[53] 3533868 + 96      63  64  65  66  67  68  69  70  71  72  73  74
u[54] 3533964 + 96      64  65  66  67  68  69  70  71  72  73  74  75
u[55] 3534060 + 96      65  66  67  68  69  70  71  72  73  74  75  76
u[56] 3534156 + 96      66  67  68  69  70  71  72  73  74  75  76  77
u[57] 3534252 + 96      67  68  69  70  71  72  73  74  75  76  77  78
u[58] 3534348 + 96      68  69  70  71  72  73  74  75  76  77  78  79
u[59] 3534444 + 96      69  70  71  72  73  74  75  76  77  78  79  80
u[60] 3534540 + 96      70  71  72  73  74  75  76  77  78  79  80  81
u[61] 3534636 + 96      71  72  73  74  75  76  77  78  79  80  81  82
u[62] 3534732 + 96      72  73  74  75  76  77  78  79  80  81  82  83
u[63] 3534828 + ----    73  74  75  76  77  78  79  80  81  82  83  84

  double (*w)[size2] = nullptr;
  w = new double[size1][size2];
sum= 3609600000.000000, It took me 304 clocks (0.304000 seconds).
w -> 4443768:
w[0] 4443768 + 96       10  11  12  13  14  15  16  17  18  19  20  21
w[1] 4443864 + 96       11  12  13  14  15  16  17  18  19  20  21  22
w[2] 4443960 + 96       12  13  14  15  16  17  18  19  20  21  22  23
w[3] 4444056 + 96       13  14  15  16  17  18  19  20  21  22  23  24
w[4] 4444152 + 96       14  15  16  17  18  19  20  21  22  23  24  25
w[5] 4444248 + 96       15  16  17  18  19  20  21  22  23  24  25  26
w[6] 4444344 + 96       16  17  18  19  20  21  22  23  24  25  26  27
w[7] 4444440 + 96       17  18  19  20  21  22  23  24  25  26  27  28
w[8] 4444536 + 96       18  19  20  21  22  23  24  25  26  27  28  29
w[9] 4444632 + 96       19  20  21  22  23  24  25  26  27  28  29  30
w[10] 4444728 + 96      20  21  22  23  24  25  26  27  28  29  30  31
w[11] 4444824 + 96      21  22  23  24  25  26  27  28  29  30  31  32
w[12] 4444920 + 96      22  23  24  25  26  27  28  29  30  31  32  33
w[13] 4445016 + 96      23  24  25  26  27  28  29  30  31  32  33  34
w[14] 4445112 + 96      24  25  26  27  28  29  30  31  32  33  34  35
w[15] 4445208 + 96      25  26  27  28  29  30  31  32  33  34  35  36
w[16] 4445304 + 96      26  27  28  29  30  31  32  33  34  35  36  37
w[17] 4445400 + 96      27  28  29  30  31  32  33  34  35  36  37  38
w[18] 4445496 + 96      28  29  30  31  32  33  34  35  36  37  38  39
w[19] 4445592 + 96      29  30  31  32  33  34  35  36  37  38  39  40
w[20] 4445688 + 96      30  31  32  33  34  35  36  37  38  39  40  41
w[21] 4445784 + 96      31  32  33  34  35  36  37  38  39  40  41  42
w[22] 4445880 + 96      32  33  34  35  36  37  38  39  40  41  42  43
w[23] 4445976 + 96      33  34  35  36  37  38  39  40  41  42  43  44
w[24] 4446072 + 96      34  35  36  37  38  39  40  41  42  43  44  45
w[25] 4446168 + 96      35  36  37  38  39  40  41  42  43  44  45  46
w[26] 4446264 + 96      36  37  38  39  40  41  42  43  44  45  46  47
w[27] 4446360 + 96      37  38  39  40  41  42  43  44  45  46  47  48
w[28] 4446456 + 96      38  39  40  41  42  43  44  45  46  47  48  49
w[29] 4446552 + 96      39  40  41  42  43  44  45  46  47  48  49  50
w[30] 4446648 + 96      40  41  42  43  44  45  46  47  48  49  50  51
w[31] 4446744 + 96      41  42  43  44  45  46  47  48  49  50  51  52
w[32] 4446840 + 96      42  43  44  45  46  47  48  49  50  51  52  53
w[33] 4446936 + 96      43  44  45  46  47  48  49  50  51  52  53  54
w[34] 4447032 + 96      44  45  46  47  48  49  50  51  52  53  54  55
w[35] 4447128 + 96      45  46  47  48  49  50  51  52  53  54  55  56
w[36] 4447224 + 96      46  47  48  49  50  51  52  53  54  55  56  57
w[37] 4447320 + 96      47  48  49  50  51  52  53  54  55  56  57  58
w[38] 4447416 + 96      48  49  50  51  52  53  54  55  56  57  58  59
w[39] 4447512 + 96      49  50  51  52  53  54  55  56  57  58  59  60
w[40] 4447608 + 96      50  51  52  53  54  55  56  57  58  59  60  61
w[41] 4447704 + 96      51  52  53  54  55  56  57  58  59  60  61  62
w[42] 4447800 + 96      52  53  54  55  56  57  58  59  60  61  62  63
w[43] 4447896 + 96      53  54  55  56  57  58  59  60  61  62  63  64
w[44] 4447992 + 96      54  55  56  57  58  59  60  61  62  63  64  65
w[45] 4448088 + 96      55  56  57  58  59  60  61  62  63  64  65  66
w[46] 4448184 + 96      56  57  58  59  60  61  62  63  64  65  66  67
w[47] 4448280 + 96      57  58  59  60  61  62  63  64  65  66  67  68
w[48] 4448376 + 96      58  59  60  61  62  63  64  65  66  67  68  69
w[49] 4448472 + 96      59  60  61  62  63  64  65  66  67  68  69  70
w[50] 4448568 + 96      60  61  62  63  64  65  66  67  68  69  70  71
w[51] 4448664 + 96      61  62  63  64  65  66  67  68  69  70  71  72
w[52] 4448760 + 96      62  63  64  65  66  67  68  69  70  71  72  73
w[53] 4448856 + 96      63  64  65  66  67  68  69  70  71  72  73  74
w[54] 4448952 + 96      64  65  66  67  68  69  70  71  72  73  74  75
w[55] 4449048 + 96      65  66  67  68  69  70  71  72  73  74  75  76
w[56] 4449144 + 96      66  67  68  69  70  71  72  73  74  75  76  77
w[57] 4449240 + 96      67  68  69  70  71  72  73  74  75  76  77  78
w[58] 4449336 + 96      68  69  70  71  72  73  74  75  76  77  78  79
w[59] 4449432 + 96      69  70  71  72  73  74  75  76  77  78  79  80
w[60] 4449528 + 96      70  71  72  73  74  75  76  77  78  79  80  81
w[61] 4449624 + 96      71  72  73  74  75  76  77  78  79  80  81  82
w[62] 4449720 + 96      72  73  74  75  76  77  78  79  80  81  82  83
w[63] 4449816 + ----    73  74  75  76  77  78  79  80  81  82  83  84

  double **vec = nullptr;
  vec = new double*[size1];
  for (int i = 0; i < size1; i++)
  {
    vec[i] = new double[size2];
  }
sum= 3609600000.000000, It took me 951 clicks (0.951000 seconds).
v -> 4581368:
v[0] 4587960 + -104     10  11  12  13  14  15  16  17  18  19  20  21
v[1] 4587856 + -104     11  12  13  14  15  16  17  18  19  20  21  22
v[2] 4587752 + -104     12  13  14  15  16  17  18  19  20  21  22  23
v[3] 4587648 + -104     13  14  15  16  17  18  19  20  21  22  23  24
v[4] 4587544 + -104     14  15  16  17  18  19  20  21  22  23  24  25
v[5] 4587440 + -104     15  16  17  18  19  20  21  22  23  24  25  26
v[6] 4587336 + -104     16  17  18  19  20  21  22  23  24  25  26  27
v[7] 4587232 + -104     17  18  19  20  21  22  23  24  25  26  27  28
v[8] 4587128 + -104     18  19  20  21  22  23  24  25  26  27  28  29
v[9] 4587024 + -104     19  20  21  22  23  24  25  26  27  28  29  30
v[10] 4586920 + -104    20  21  22  23  24  25  26  27  28  29  30  31
v[11] 4586816 + -104    21  22  23  24  25  26  27  28  29  30  31  32
v[12] 4586712 + -104    22  23  24  25  26  27  28  29  30  31  32  33
v[13] 4586608 + -104    23  24  25  26  27  28  29  30  31  32  33  34
v[14] 4586504 + -104    24  25  26  27  28  29  30  31  32  33  34  35
v[15] 4586400 + -104    25  26  27  28  29  30  31  32  33  34  35  36
v[16] 4586296 + -104    26  27  28  29  30  31  32  33  34  35  36  37
v[17] 4586192 + -104    27  28  29  30  31  32  33  34  35  36  37  38
v[18] 4586088 + -104    28  29  30  31  32  33  34  35  36  37  38  39
v[19] 4585984 + -104    29  30  31  32  33  34  35  36  37  38  39  40
v[20] 4585880 + -104    30  31  32  33  34  35  36  37  38  39  40  41
v[21] 4585776 + -104    31  32  33  34  35  36  37  38  39  40  41  42
v[22] 4585672 + -104    32  33  34  35  36  37  38  39  40  41  42  43
v[23] 4585568 + -104    33  34  35  36  37  38  39  40  41  42  43  44
v[24] 4585464 + 2600    34  35  36  37  38  39  40  41  42  43  44  45
v[25] 4588064 + 104     35  36  37  38  39  40  41  42  43  44  45  46
v[26] 4588168 + 104     36  37  38  39  40  41  42  43  44  45  46  47
v[27] 4588272 + 104     37  38  39  40  41  42  43  44  45  46  47  48
v[28] 4588376 + 104     38  39  40  41  42  43  44  45  46  47  48  49
v[29] 4588480 + 104     39  40  41  42  43  44  45  46  47  48  49  50
v[30] 4588584 + 104     40  41  42  43  44  45  46  47  48  49  50  51
v[31] 4588688 + 104     41  42  43  44  45  46  47  48  49  50  51  52
v[32] 4588792 + 104     42  43  44  45  46  47  48  49  50  51  52  53
v[33] 4588896 + 104     43  44  45  46  47  48  49  50  51  52  53  54
v[34] 4589000 + 104     44  45  46  47  48  49  50  51  52  53  54  55
v[35] 4589104 + 104     45  46  47  48  49  50  51  52  53  54  55  56
v[36] 4589208 + 104     46  47  48  49  50  51  52  53  54  55  56  57
v[37] 4589312 + 104     47  48  49  50  51  52  53  54  55  56  57  58
v[38] 4589416 + -13168  48  49  50  51  52  53  54  55  56  57  58  59
v[39] 4576248 + 104     49  50  51  52  53  54  55  56  57  58  59  60
v[40] 4576352 + 104     50  51  52  53  54  55  56  57  58  59  60  61
v[41] 4576456 + 104     51  52  53  54  55  56  57  58  59  60  61  62
v[42] 4576560 + 104     52  53  54  55  56  57  58  59  60  61  62  63
v[43] 4576664 + 104     53  54  55  56  57  58  59  60  61  62  63  64
v[44] 4576768 + 104     54  55  56  57  58  59  60  61  62  63  64  65
v[45] 4576872 + 104     55  56  57  58  59  60  61  62  63  64  65  66
v[46] 4576976 + 104     56  57  58  59  60  61  62  63  64  65  66  67
v[47] 4577080 + 104     57  58  59  60  61  62  63  64  65  66  67  68
v[48] 4577184 + 104     58  59  60  61  62  63  64  65  66  67  68  69
v[49] 4577288 + 104     59  60  61  62  63  64  65  66  67  68  69  70
v[50] 4577392 + 104     60  61  62  63  64  65  66  67  68  69  70  71
v[51] 4577496 + 104     61  62  63  64  65  66  67  68  69  70  71  72
v[52] 4577600 + 104     62  63  64  65  66  67  68  69  70  71  72  73
v[53] 4577704 + 104     63  64  65  66  67  68  69  70  71  72  73  74
v[54] 4577808 + 104     64  65  66  67  68  69  70  71  72  73  74  75
v[55] 4577912 + 104     65  66  67  68  69  70  71  72  73  74  75  76
v[56] 4578016 + 104     66  67  68  69  70  71  72  73  74  75  76  77
v[57] 4578120 + 104     67  68  69  70  71  72  73  74  75  76  77  78
v[58] 4578224 + 104     68  69  70  71  72  73  74  75  76  77  78  79
v[59] 4578328 + 104     69  70  71  72  73  74  75  76  77  78  79  80
v[60] 4578432 + 104     70  71  72  73  74  75  76  77  78  79  80  81
v[61] 4578536 + 104     71  72  73  74  75  76  77  78  79  80  81  82
v[62] 4578640 + 104     72  73  74  75  76  77  78  79  80  81  82  83
v[63] 4578744 + ----    73  74  75  76  77  78  79  80  81  82  83  84

No comments:

Post a Comment