summaryrefslogtreecommitdiff
path: root/2.3-1/macros/FunctionAnnotation/FA_SZ_COL_DIAG_IN_EX.sci
blob: 8a313fee8a5a38db47ebe0a542d0eb4f980419ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
function outsize =FA_SZ_COL_DIAG_IN_EX(insize,val)
//function outsize =FA_SZ_COL_DIAG_IN_EX(insize,val)
// -----------------------------------------------------------------
// Get size of column of the output for diag(insert) function
//
// Input data:
// insize: string specifying the size of input argument.
// val: string containing value of second input
//
// Output data:
// outsize: string containing the column size for output argument.
//
// Copyright (C) 2017 - IIT Bombay - FOSSEE
//
// 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
// Author: Mushir
// Organization: FOSSEE, IIT Bombay
// Email: toolbox@scilab.in
//

// -----------------------------------------------------------------

// ------------------------------
// --- Check input arguments. ---
// ------------------------------
SCI2CNInArgCheck(argn(2),2,2);
   
///////////////////////////////COLUMN SIZE FOR INSERT POSITION//////////////// 
    


    if((insize(1) == '1')) // If ROW size is 1 
        if(val == '0') then //For Oth position
            outsize = insize(2); //COLUMN size is equal to COLUMN size 
        else       // For ...-2,-1,1,2... position
            outsize = string(eval(insize(2))+abs(eval(val)));
            // COLUMN size is equal to COLUMN size + absolute value of position(for 1*3 matrix and 2nd postion COLUMN size is (3+2)=5
        end
    elseif((insize(2) == '1')) // If COLUMN size is 1
        if(val == '0') then   //For Oth position
            outsize = insize(1); //COLUMNS size is equal to ROW size
        else     // For ...-2,-1,1,2.... position
            outsize = string(eval(insize(1))+abs(eval(val)));
            // COLUMN size is equal to ROW size + absolute value of position(for 3*1 matrix and 1st postion COLUMN size is (3+1)=4   
        end 
////////////////////////////////////////////////////////////////////////////////


////////////////////////////COLUMN SIZE FOR EXTRACT POSITION////////////////////   
           
    else
        outsize = '1';  // For extract condition COLUMN size is always ONE.
    end
    
////////////////////////////////////////////////////////////////////////////////    

endfunction