KT
Size: a a a
KT
VM
RS
A[.!(
(-a .< A[:, 1] .< a) .|
(-b .< A[:, 2] .< b) .|
(-c .< A[:, 3] .< c)
), :]
АО
АО
RS
АО
function f1(A, a, b, c)
A[.!(
(-a .< A[:, 1] .< a) .|
(-b .< A[:, 2] .< b) .|
(-c .< A[:, 3] .< c)
), :]
end
function f2(A, a, b, c)
n = size(A)[1]
filt = BitArray(undef, n)
for i in 1:n
filt[i] = !((-a < A[i, 1] < a) | (-b < A[i, 2] < b) | (-c < A[i, 3] < c))
end
A[filt, :]
end
n = 100
A = [rand(1:1000, n) rand(1:1000, n) rand(1:1000, n)]
a, b, c = 10, 20, 30
# Sanity check
all(f2(A, a, b, c) .== f1(A, a, b, c)) # true
@btime f1($A, $a, $b, $c) # 6.206 μs (27 allocations: 31.03 KiB)
@btime f2($A, $a, $b, $c) # 1.500 μs (6 allocations: 2.53 KiB)
АО
АО
KT
АО
function f3(A, a, b, c)
n = size(A)[1]
B = similar(A)
j = 1
for i in 1:n
if !((-a < A[i, 1] < a) | (-b < A[i, 2] < b) | (-c < A[i, 3] < c))
B[j, 1] = A[i, 1]
B[j, 2] = A[i, 2]
B[j, 3] = A[i, 3]
j += 1
end
end
@views B[1:j - 1, :]
end
@btime f3($A, $a, $b, $c) # 592.569 ns (2 allocations: 2.56 KiB)
VM
function f3(A, a, b, c)
n = size(A)[1]
B = similar(A)
j = 1
for i in 1:n
if !((-a < A[i, 1] < a) | (-b < A[i, 2] < b) | (-c < A[i, 3] < c))
B[j, 1] = A[i, 1]
B[j, 2] = A[i, 2]
B[j, 3] = A[i, 3]
j += 1
end
end
@views B[1:j - 1, :]
end
@btime f3($A, $a, $b, $c) # 592.569 ns (2 allocations: 2.56 KiB)
АО
@inbounds if !((-a < A[i, 1] < a) | (-b < A[i, 2] < b) | (-c < A[i, 3] < c))
VM

SV

VM

VM

АО