log 함수로 자연 로그를 배정밀도로 계산할 때의 성능이 향상되었습니다. 예를 들어, 다음 코드는 0에서 1,000 구간에서 100,000,000개 실수의 자연 로그를 계산합니다. 이 코드는 이전 릴리스보다 약 2.8배 빠릅니다.
function t = timingLog
x = rand(1,1e8)*1000;
y = @() log(x);
t = timeit(y);
end
대략적인 실행 시간은 다음과 같습니다.
R2025a: 0.79초
R2026a: 0.28초
코드 실행 시간은 Windows® 11, AMD EPYC™ 74F3 24-Core Processor @ 3.19GHz 테스트 시스템에서 timingLog 함수를 호출하여 측정했습니다.
호환성 관련 고려 사항
이 성능 향상은 코드 변경에서 비롯되며, 이 변경으로 인해 배정밀도에서의 반올림 동작도 약간 달라져 전반적으로 더 정확한 결과를 도출합니다. 예를 들어, 다음 코드는 이제 과학 표기법에서 소수점 이하 15번째 자리까지 더 정확한 결과를 반환합니다.
format longE
Y = log(1.63340913276288)
Y =
4.906693231856701e-01
이전에는 동일한 코드가 다음과 같은 결과를 반환했습니다.
format longE
Y = log(1.63340913276288)
Y =
4.906693231856700e-01
MATLAB®은 1.63340913276288과 같은 10진수 입력값을 표현 가능한 최근접 배정밀도 이진 값으로 변환하므로, 원래의 10진수 입력과 정확히 일치하지 않을 수 있습니다. 이러한 이유로 log 함수는 이제 배정밀도에서 더 정확하지만, 입력값의 정확한 표현을 사용한 계산과는 결과가 다를 수 있습니다.
log 함수는 테이블이나 타임테이블 내의 변수에 액세스하기 위한 인덱싱 없이 이러한 모든 변수에 대해 계산을 수행할 수 있습니다. 모든 변수는 계산을 지원하는 데이터형을 가져야 합니다. 자세한 내용은 테이블 및 타임테이블에 대해 직접 계산 항목을 참조하십시오.