1
arma :: max와 arma :: min은 모든 NAN 값을 포함하는 벡터를 공급할 때 예기치 않은 결과를 나타내는 것처럼 보입니다. NaN을 반환하는 대신 min/max 함수는 +/- inf를 반환합니다. 라이브러리의 버그입니까? 예상되는 동작입니까?armadillo 최대/최소 NaN 함수 처리?
#include <armadillo>
#include <numeric>
#include <iostream>
int main() {
arma::vec v(2);
v[0] = std::numeric_limits<double>::quiet_NaN();
v[1] = std::numeric_limits<double>::quiet_NaN();
std::cout << arma::max(v) << " " << arma::min(v) << std::endl;
// output: -inf inf
std::cout << std::max(v[0], v[1]) << " " << std::min(v[0],v[1]) << std::endl;
// output: -inf inf
} 참고로
, GNU 옥타브 :
octave:1> min([nan,nan])
ans = NaN
octave:2> max([nan,nan])
ans = NaN
빈 시퀀스로 호출하면 얻는 것과 같을 것이라고 기대합니다. –