@@ -1399,9 +1399,9 @@ end
13991399 end
14001400 else
14011401 c_prime = Vector {typeof(u)} (undef, num_stages) # time stepping
1402- c_prime[num_stages] = dt / cache. dtprev
1402+ c_prime[num_stages] = @. . dt / cache. dtprev
14031403 for i in 1 : num_stages - 1
1404- c_prime[i] = c[i] * c_prime[num_stages]
1404+ c_prime[i] = @. . c[i] * c_prime[num_stages]
14051405 end
14061406 for i in 1 : num_stages # collocation polynomial
14071407 z[i] = @. . cont[num_stages] * (c_prime[i] - c[1 ] + 1 ) + cont[num_stages - 1 ]
@@ -1414,9 +1414,9 @@ end
14141414 end
14151415 # w = TI*z
14161416 for i in 1 : num_stages
1417- w[i] = zero (u)
1417+ w[i] = @. . zero (u)
14181418 for j in 1 : num_stages
1419- w[i] += TI[i,j] * z[j]
1419+ w[i] = @. . w[i] + TI[i,j] * z[j]
14201420 end
14211421 end
14221422 end
@@ -1439,10 +1439,10 @@ end
14391439
14401440 # fw = TI * ff
14411441 fw = Vector {typeof(u)} (undef, num_stages)
1442- for i in 1 : num_stages
1443- fw[i] = zero (u)
1442+ for i in 1 : num_stages
1443+ fw[i] = @. . zero (u)
14441444 for j in 1 : num_stages
1445- fw[i] += TI[i,j] * ff[j]
1445+ fw[i] = @. . fw[i] + TI[i,j] * ff[j]
14461446 end
14471447 end
14481448
@@ -1468,8 +1468,8 @@ end
14681468 dw[1 ] = _reshape (LU1 \ _vec (rhs[1 ]), axes (u))
14691469 for i in 2 :(num_stages + 1 ) ÷ 2
14701470 tmp = _reshape (LU2[i - 1 ] \ _vec (@. . rhs[2 * i - 2 ] + rhs[2 * i - 1 ] * im), axes (u))
1471- dw[2 * i - 2 ] = real (tmp)
1472- dw[2 * i - 1 ] = imag (tmp)
1471+ dw[2 * i - 2 ] = @. . real (tmp)
1472+ dw[2 * i - 1 ] = @. . imag (tmp)
14731473 end
14741474 integrator. stats. nsolve += (num_stages + 1 ) ÷ 2
14751475
@@ -1493,21 +1493,21 @@ end
14931493 end
14941494
14951495 for i in 1 : num_stages
1496- w[i] -= dw[i]
1496+ w[i] = @. . w[i] - dw[i]
14971497 end
14981498
14991499 # transform `w` to `z`
15001500 # z = T * w
15011501 for i in 1 : num_stages - 1
1502- z[i] = zero (u)
1502+ z[i] = @. . zero (u)
15031503 for j in 1 : num_stages
1504- z[i] += T[i,j] * w[j]
1504+ z[i] = @. . z[i] + T[i,j] * w[j]
15051505 end
15061506 end
1507- z[num_stages] = T[num_stages, 1 ] * w[1 ]
1507+ z[num_stages] = @. . T[num_stages, 1 ] * w[1 ]
15081508 i = 2
15091509 while i < num_stages
1510- z[num_stages] += w[i]
1510+ z[num_stages] = @. . z[num_stages] + w[i]
15111511 i += 2
15121512 end
15131513
@@ -1617,7 +1617,9 @@ end
16171617 if integrator. iter == 1 || integrator. u_modified || alg. extrapolant == :constant
16181618 cache. dtprev = one (cache. dtprev)
16191619 for i in 1 : num_stages
1620- z[i] = w[i] = cache. cont[i] = map (zero, u)
1620+ @. . z[i] = map (zero, u)
1621+ @. . w[i] = map (zero, u)
1622+ @. . cache. cont[i] = map (zero, u)
16211623 end
16221624 else
16231625 c_prime[num_stages] = dt / cache. dtprev
@@ -1635,9 +1637,9 @@ end
16351637 end
16361638 # mul!(w, TI, z)
16371639 for i in 1 : num_stages
1638- w[i] = zero (u)
1640+ @. . w[i] = zero (u)
16391641 for j in 1 : num_stages
1640- w[i] += TI[i,j] * z[j]
1642+ @. . w[i] += TI[i,j] * z[j]
16411643 end
16421644 end
16431645 end
@@ -1661,9 +1663,9 @@ end
16611663
16621664 # mul!(fw, TI, ks)
16631665 for i in 1 : num_stages
1664- fw[i] = zero (u)
1666+ fw[i] = @. . zero (u)
16651667 for j in 1 : num_stages
1666- fw[i] += TI[i,j] * ks[j]
1668+ fw[i] = @. . fw[i] + TI[i,j] * ks[j]
16671669 end
16681670 end
16691671
@@ -1736,23 +1738,23 @@ end
17361738 end
17371739 end
17381740
1739- w[1 ] -= dw1
1741+ w[1 ] = @. . w[ 1 ] - dw1
17401742 for i in 2 : num_stages
1741- w[i] -= dw[i - 1 ]
1743+ w[i] = @. . w[i] - dw[i - 1 ]
17421744 end
17431745
17441746 # transform `w` to `z`
17451747 # mul!(z, T, w)
17461748 for i in 1 : num_stages - 1
1747- z[i] = zero (u)
1749+ z[i] = @. . zero (u)
17481750 for j in 1 : num_stages
1749- z[i] += T[i,j] * w[j]
1751+ z[i] = @. . z[i] + T[i,j] * w[j]
17501752 end
17511753 end
1752- z[num_stages] = T[num_stages, 1 ] * w[1 ]
1754+ z[num_stages] = @. . T[num_stages, 1 ] * w[1 ]
17531755 i = 2
17541756 while i < num_stages
1755- z[num_stages] += w[i]
1757+ z[num_stages] = @. . z[num_stages] + w[i]
17561758 i += 2
17571759 end
17581760
0 commit comments