리눅스 커널의 소스 코드에서 약간의 TCP 알고리즘을 수정해야합니다. 다음과 같은 그것에서 , 나는 정체 창을 계산해야한다 :리눅스의 근사에 의한 지수 계산 커널의 소스 코드
cwnd = cwnd (1-x^alpha) where alpha and x are float type and satisfy 0<x<1, alpha >0.
일반적으로, 하나는 오른쪽 Math.h 및 펑() 함수를 인클루드하고 사용할 수있다?
그러나 지수 계산으로 인해 작업 속도가 느려질 지 모르겠습니다.
그래서, 나는, 베르누이의 불평등 내 경우에 따라서
(1-a)^x < 1-ax where 0<a<1
생각 나는 베르누이을 사용하여 계산을 근사 할 수입니다.
x^alpha = (1-(1-x))^alpha ~ 1 - alpha(1-x)
그렇다면 괜찮은 방법이 있습니다. 도와주세요.
아마도 최악의 경우의 근사값 오류의 결과는 무엇인지 스스로 자문해야합니다. 누군가이 문제를 아직 해결하지 않았습니까? –
또한, 커널의 부동 소수점은 일반적으로 매우 강하게 낙심됩니다 ... 금지 된 경우에도 ... – twalberg
... 그리고 정당한 이유가 있습니다. 커널 모드로 전환해도 프로그램의 부동 소수점 상태는 저장되지 않습니다 (커널 모드 스위치를 더 비싸게 만들 수 있습니다 ...). – EOF