@@ -1399,9 +1399,9 @@ end
1399
1399
end
1400
1400
else
1401
1401
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
1403
1403
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]
1405
1405
end
1406
1406
for i in 1 : num_stages # collocation polynomial
1407
1407
z[i] = @. . cont[num_stages] * (c_prime[i] - c[1 ] + 1 ) + cont[num_stages - 1 ]
@@ -1414,9 +1414,9 @@ end
1414
1414
end
1415
1415
# w = TI*z
1416
1416
for i in 1 : num_stages
1417
- w[i] = zero (u)
1417
+ w[i] = @. . zero (u)
1418
1418
for j in 1 : num_stages
1419
- w[i] += TI[i,j] * z[j]
1419
+ w[i] = @. . w[i] + TI[i,j] * z[j]
1420
1420
end
1421
1421
end
1422
1422
end
@@ -1439,10 +1439,10 @@ end
1439
1439
1440
1440
# fw = TI * ff
1441
1441
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)
1444
1444
for j in 1 : num_stages
1445
- fw[i] += TI[i,j] * ff[j]
1445
+ fw[i] = @. . fw[i] + TI[i,j] * ff[j]
1446
1446
end
1447
1447
end
1448
1448
@@ -1468,8 +1468,8 @@ end
1468
1468
dw[1 ] = _reshape (LU1 \ _vec (rhs[1 ]), axes (u))
1469
1469
for i in 2 :(num_stages + 1 ) ÷ 2
1470
1470
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)
1473
1473
end
1474
1474
integrator. stats. nsolve += (num_stages + 1 ) ÷ 2
1475
1475
@@ -1493,21 +1493,21 @@ end
1493
1493
end
1494
1494
1495
1495
for i in 1 : num_stages
1496
- w[i] -= dw[i]
1496
+ w[i] = @. . w[i] - dw[i]
1497
1497
end
1498
1498
1499
1499
# transform `w` to `z`
1500
1500
# z = T * w
1501
1501
for i in 1 : num_stages - 1
1502
- z[i] = zero (u)
1502
+ z[i] = @. . zero (u)
1503
1503
for j in 1 : num_stages
1504
- z[i] += T[i,j] * w[j]
1504
+ z[i] = @. . z[i] + T[i,j] * w[j]
1505
1505
end
1506
1506
end
1507
- z[num_stages] = T[num_stages, 1 ] * w[1 ]
1507
+ z[num_stages] = @. . T[num_stages, 1 ] * w[1 ]
1508
1508
i = 2
1509
1509
while i < num_stages
1510
- z[num_stages] += w[i]
1510
+ z[num_stages] = @. . z[num_stages] + w[i]
1511
1511
i += 2
1512
1512
end
1513
1513
@@ -1617,7 +1617,9 @@ end
1617
1617
if integrator. iter == 1 || integrator. u_modified || alg. extrapolant == :constant
1618
1618
cache. dtprev = one (cache. dtprev)
1619
1619
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)
1621
1623
end
1622
1624
else
1623
1625
c_prime[num_stages] = dt / cache. dtprev
@@ -1635,9 +1637,9 @@ end
1635
1637
end
1636
1638
# mul!(w, TI, z)
1637
1639
for i in 1 : num_stages
1638
- w[i] = zero (u)
1640
+ @. . w[i] = zero (u)
1639
1641
for j in 1 : num_stages
1640
- w[i] += TI[i,j] * z[j]
1642
+ @. . w[i] += TI[i,j] * z[j]
1641
1643
end
1642
1644
end
1643
1645
end
@@ -1661,9 +1663,9 @@ end
1661
1663
1662
1664
# mul!(fw, TI, ks)
1663
1665
for i in 1 : num_stages
1664
- fw[i] = zero (u)
1666
+ fw[i] = @. . zero (u)
1665
1667
for j in 1 : num_stages
1666
- fw[i] += TI[i,j] * ks[j]
1668
+ fw[i] = @. . fw[i] + TI[i,j] * ks[j]
1667
1669
end
1668
1670
end
1669
1671
@@ -1736,23 +1738,23 @@ end
1736
1738
end
1737
1739
end
1738
1740
1739
- w[1 ] -= dw1
1741
+ w[1 ] = @. . w[ 1 ] - dw1
1740
1742
for i in 2 : num_stages
1741
- w[i] -= dw[i - 1 ]
1743
+ w[i] = @. . w[i] - dw[i - 1 ]
1742
1744
end
1743
1745
1744
1746
# transform `w` to `z`
1745
1747
# mul!(z, T, w)
1746
1748
for i in 1 : num_stages - 1
1747
- z[i] = zero (u)
1749
+ z[i] = @. . zero (u)
1748
1750
for j in 1 : num_stages
1749
- z[i] += T[i,j] * w[j]
1751
+ z[i] = @. . z[i] + T[i,j] * w[j]
1750
1752
end
1751
1753
end
1752
- z[num_stages] = T[num_stages, 1 ] * w[1 ]
1754
+ z[num_stages] = @. . T[num_stages, 1 ] * w[1 ]
1753
1755
i = 2
1754
1756
while i < num_stages
1755
- z[num_stages] += w[i]
1757
+ z[num_stages] = @. . z[num_stages] + w[i]
1756
1758
i += 2
1757
1759
end
1758
1760
0 commit comments