| 1 | function r = power(p,q) | 
| 2 | %overloaded gcmfaces power function : | 
| 3 | %  simply calls double power function for each face data | 
| 4 | %  if any of the two arguments is a gcmfaces object | 
| 5 |  | 
| 6 | if isa(p,'gcmfaces'); r=p; else; r=q; end; | 
| 7 | for iFace=1:r.nFaces; | 
| 8 | iF=num2str(iFace); | 
| 9 | if isa(p,'gcmfaces')&isa(q,'gcmfaces'); | 
| 10 | eval(['r.f' iF '=p.f' iF '.^q.f' iF ';']); | 
| 11 | elseif isa(p,'gcmfaces')&isa(q,'double'); | 
| 12 | eval(['r.f' iF '=p.f' iF '.^q;']); | 
| 13 | elseif isa(p,'double')&isa(q,'gcmfaces'); | 
| 14 | eval(['r.f' iF '=p.^q.f' iF ';']); | 
| 15 | else; | 
| 16 | error('gcmfaces power: types are incompatible') | 
| 17 | end; | 
| 18 | end; | 
| 19 |  | 
| 20 |  |