Typ før auxvariabel
Closed this issue · 9 comments
aronandersson commented
Det verkar inte gå att vælja typ før auxvariabler associerade med min/max (de syns inte i .m.py filen)
jonathf commented
De skal ikke definineres i suppliment-filen, men håndteres utelukkende fra context.
Fikset nå.
aronandersson commented
Fungerar fortfarande inte før min/max
jonathf commented
Eksempel?
jonathf commented
Følgende:
a = [1,2]
min(a)
A = min(a)
[A,I] = min(a)
b = [3;4.]
max(b)
B = max(b)
[A,I] = max(b)
blir oversatt til:
int _a [] = {1, 2} ;
a = irowvec(_a, 2, false) ;
arma::min(a) ;
A = arma::min(a) ;
A = a.min(I) ;
double _b [] = {3, 4.} ;
b = vec(_b, 2, false) ;
arma::max(b) ;
B = arma::max(b) ;
A = b.max(I) ;
aronandersson commented
Problemet verkar vara relaterat till nestade operationer e.g.:
function y = EMIT_Proc_Mandrel_Simulated_LS(x)
casing_sizes = [2.875,3.5,4,4.5,5,5.5,6.625,7,7.625,7.75,8.625,9.625,10.75,11.75,13.375,16,18.625,20,22,24,26,28,30];
[y,i] = min(abs(casing_sizes-x))
return
blir:
double EMIT_Proc_Mandrel_Simulated_LS(double x)
{
double y ;
uword i ;
rowvec casing_sizes ;
TYPE _aux_TYPE_1 ;
double _casing_sizes [] = {2.875, 3.5, 4, 4.5, 5, 5.5, 6.625, 7, 7.625, 7.75, 8.625, 9.625, 10.75, 11.75, 13.375, 16, 18.625, 20, 22, 24, 26, 28, 30} ;
casing_sizes = rowvec(_casing_sizes, 23, false) ;
_aux_TYPE_1 = abs(casing_sizes-x) ;
y = _aux_TYPE_1.min(i) ;
return y ;
return y ;
}
jonathf commented
Der ja. Jeg tar en titt.
jonathf commented
Fant feilen. Jeg får nå:
double _casing_sizes [] = {2.875, 3.5, 4, 4.5, 5, 5.5, 6.625, 7, 7.625, 7.75, 8.625, 9.625, 10.75, 11.75, 13.375, 16, 18.625, 20, 22, 24, 26, 28, 30} ;
casing_sizes = rowvec(_casing_sizes, 23, false) ;
_aux_double_1 = abs(casing_sizes-x) ;
y = _aux_double_1.min(i) ;
aronandersson commented
auxvariabeln skall vara en rowvec, inte en double
jonathf commented
- Fikset.
- Lagt til 'abs' i reserved så den kan bli med på suggestions
- Lagt suggestions i min/max til double og int for hhv. extremal-verdi og index.