fnpower.gms : 전력 내장의 정확성 테스트

설명

일부 세트 등을 정의합니다.

명령줄에서 zerores=2e-299로 실행하는 것을 잊지 마세요.

소형 모델 유형 :크레이지 슬롯


카테고리 : 크레이지 슬롯 테스트 라이브러리


메인 파일 : fnpower.gms 포함: fnset_xy.inc[htmlfntest_xy.inc[html]

$title '전력 본질의 정확성 테스트' (FNPOWER,SEQ=158)

* 일부 세트 등을 정의합니다.
$include fnset_xy.inc

* 명령줄에서 zerores=2e-299로 실행하는 것을 잊지 마세요.

$gdxIn fnpower
$load aeps 담당자 relToInput T 데이터
$gdxIn

루프 T,
  data(T,'fxy_') = data(T,'fxy_');
  data(T, 'f') = power.value( data(T,'x'),data(T,'y'));
  data(T, 'fx') = power.grad(1: data(T,'x'),data(T,'y'));
  data(T, 'fy') = power.grad(2: data(T,'x'),data(T,'y'));
  data(T,'fxx') = power.hess(1:1:data(T,'x'),data(T,'y'));
  data(T,'fxy') = power.hess(1:2:data(T,'x'),data(T,'y'));
  data(T,'fyx') = power.hess(2:1:data(T,'x'),data(T,'y'));
  data(T, 'fyy') = power.hess(2:2:data(T,'x'),data(T,'y'));
  data(T, 'rc') = mathlastrc;
  data(T, 'ec') = mathlastec;
;

* 함수 평가 오류가 발생한 경우
중단$(실행 오류 lt 1)
  'pow(x,c), |x|의 등급/헤스를 가져오면 실행 오류가 발생해야 합니다. 매우 작은';
실행 오류 = 0;

데이터 표시;

스칼라 POWER_EPS / 1e-30 /;
치트 설정(T);
치트(T) = 아니오;
* cheat(T) = (abs(data(T,'f')) ge .999999999e299);

* |x|인 경우를 처리합니다. < POWER_EPS, c 특별하지 않음
* cheat(T) = (abs(data(T,'x')) lt POWER_EPS) and (data(T,'y') le -3);
* 디스플레이 치트;
* data(cheat,'f') = sign(data(cheat, '

* 오버플로가 발생하면 테스트를 통과하기 위한 치트입니다.  CMEX에서 꺼낼 수 있습니다.
* 고정됨
* $onText
data(cheat, 'fx') = data(cheat, 'fx_');
data(cheat, 'fy') = data(cheat, 'fy_');
data(cheat,'fxx') = data(cheat,'fxx_');
data(cheat,'fxy') = data(cheat,'fxy_');
data(cheat,'fyx') = data(cheat,'fyx_');
data(cheat,'fyy') = data(cheat,'fyy_');
* $offText

$include fntest_xy.inc