Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- data = Table[RandomReal[], {x, 1, 1000000}];
- (* Method 1 *)
- Timing[Total[Table[Total[ Table[data[[i]], {i, j, 10 + j}]], {j, 1, Length[data] - 5*10}]]]
- (* Method 2, with constant index *)
- m = 10;
- Timing[Total[Table[Total[ Table[data[[i]], {i, j, m + j}]], {j, 1, Length[data] - 5*m}]]]
- Timing[Total[Table[ (Total[ Table[data[[i]], {i, j, m + j}]])^2 , {j, 1, Length[data] - 5*m}]]]
- Timing[Total[Table[Total[Table[data[[i]], {i, j, 10 + j}]], {j, 1,Length[data] - 5*10}]]]
- m = 10;
- Timing[Total[Table[Total[Table[data[[i]], {i, j, m + j}]], {j, 1, Length[data] - 5*10}]]]
- With[{m = 10},
- Timing[Total[Table[Total[Table[data[[i]], {i, j, m + j}]], {j, 1,Length[data] - 5*m}]]]
- ]
- a = With[{m = 10},
- Total[
- Table[Total[Table[data[[i]], {i, j, m + j}]], {j, 1,
- Length[data] - 5*m}]]
- ]; // RepeatedTiming // First
- b = Total@ListCorrelate[ConstantArray[1., m + 1],
- data[[;; -50 + m - 1]]]; // RepeatedTiming // First
- c = Plus[
- Range[1., m].data[[1 ;; m]],
- (m + 1) Total[data[[m + 1 ;; -5*m - 1]]],
- Range[N@m, 1., -1].data[[-5 m ;; -4 m - 1]]
- ]; // RepeatedTiming // First
- a == b == c
- m=10;
- Total @ ListCorrelate[ConstantArray[1,m+1], data[[;;-50+m-1]]] //AbsoluteTiming
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement