/* * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab * Copyright (C) 2008-2008 - INRIA - Allan SIMON * * This file must be used under the terms of the CeCILL. * This source file is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt * */ #include "diag.h" void i16diagexa(int16 *in, int _row,int _column,int extract_post,int16 *out) { int j; if(_row == _column) { if(extract_post <= 0) { for ( j = 0 ; j < _column ; j++ ) { out[j] = in[((_column+1)*j)-extract_post] ; } } else { for ( j = extract_post ; j < _column ; j++ ) { out[j-extract_post] = in[((_column+1)*j)-extract_post] ; } } } else if(_row > _column) { if(extract_post >=0) { for(j = extract_post; j < _column;j++) { out[j-extract_post] = in[((_row+1)*j)-extract_post]; } } else { if((abs(extract_post) <= (_row - _column))) { for(j = 0; j < _column ; j++) { out[j] = in[((_row+1)*j)-extract_post]; } } else { for(j=0; j < (_row + extract_post);j++) { out[j] = in[((_row+1)*j)-extract_post]; } } } } else if (_row < _column) { if(extract_post > 0) { if((extract_post <= (_column - _row))) { for(j=extract_post;j < _column;j++) { out[j-extract_post] = in[((_row+1)*j)-extract_post]; } } else { for(j=extract_post;j < _column;j++) { out[j-extract_post] = in[((_row+1)*j)-extract_post]; } } } else { for(j=0;j < (_row+extract_post);j++) { out[j] = in[((_row+1)*j)-extract_post]; } } } }