Simplify code with `merge` in stdlib_stats_corr.f90, stdlib_stats_cov.f90 and other files
Closed this issue · 2 comments
Beliavsky commented
In https://github.com/fortran-lang/stdlib/blob/stdlib-fpm/src/stdlib_stats_corr.f90
I see many lines using merge
such as
mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
I think this can be written as just
mask_ = mask(:, i) .and. mask(:, j)
arjenmarkus commented
Yes, I agree, using merge() here is unnecessary.
Op di 18 mrt 2025 om 13:15 schreef Beliavsky ***@***.***>:
… In
https://github.com/fortran-lang/stdlib/blob/stdlib-fpm/src/stdlib_stats_corr.f90
I see many lines using merge such as
mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
I think this can be written as just
mask_ = mask(:, i) .and. mask(:, j)
—
Reply to this email directly, view it on GitHub
<#953>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAN6YR7YIOJUN4FQBIUGOVT2VAE6BAVCNFSM6AAAAABZH7RG3KVHI2DSMVQWIX3LMV43ASLTON2WKOZSHEZDQMZRGA3TINI>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
[image: Beliavsky]*Beliavsky* created an issue (fortran-lang/stdlib#953)
<#953>
In
https://github.com/fortran-lang/stdlib/blob/stdlib-fpm/src/stdlib_stats_corr.f90
I see many lines using merge such as
mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
I think this can be written as just
mask_ = mask(:, i) .and. mask(:, j)
—
Reply to this email directly, view it on GitHub
<#953>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAN6YR7YIOJUN4FQBIUGOVT2VAE6BAVCNFSM6AAAAABZH7RG3KVHI2DSMVQWIX3LMV43ASLTON2WKOZSHEZDQMZRGA3TINI>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
Beliavsky commented
Using Windows findstr
c:\fortran\public_domain\github\stdlib>findstr -i -s -m /C:"merge(.true., .false." *.f90
gives a list of files where there may be an unnecessary merge
:
src\temp\stdlib_math_is_close.f90
src\temp\stdlib_stats_corr.f90
src\temp\stdlib_stats_cov.f90
test\bitsets\test_stdlib_bitset_64.f90
test\bitsets\test_stdlib_bitset_large.f90
The lines are
src\temp\stdlib_math_is_close.f90: close = merge(.true., .false., equal_nan_ .and. ieee_is_nan(a) .and. ieee_is_nan(b))
src\temp\stdlib_math_is_close.f90: close = merge(.true., .false., equal_nan_ .and. ieee_is_nan(a) .and. ieee_is_nan(b))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_corr.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(:, i) .and. mask(:, j))
src\temp\stdlib_stats_cov.f90: mask_ = merge(.true., .false., mask(i, :) .and. mask(j, :))
test\bitsets\test_stdlib_bitset_64.f90: call check(error, merge(.true., .false., all(log8)), & ! FIXME
test\bitsets\test_stdlib_bitset_large.f90: call check(error, merge(.true., .false., all(log8)), & ! FIXME
test\bitsets\test_stdlib_bitset_large.f90: call check(error, merge(.true., .false., all(log8)), & ! FIXME