dba3fb54d58373165571c04ee82b653268d4e06d
[scilab.git] / scilab / modules / umfpack / macros / ana_style.sci
1 //   Copyright Bruno Pinçon, ESIAL-IECN, Inria CORIDA project
2 //   <bruno.pincon@iecn.u-nancy.fr>
3 //
4 // This set of scilab 's macros provide a few sparse utilities.
5 //
6 // Copyright (C) 2012 - 2016 - Scilab Enterprises
7 //
8 // This file is hereby licensed under the terms of the GNU GPL v2.0,
9 // pursuant to article 5.3.4 of the CeCILL v.2.1.
10 // This file was originally licensed under the terms of the CeCILL v2.1,
11 // and continues to be available under such terms.
12 // For more information, see the COPYING file which you should have received
13 // along with this program.
14
15 function [col, mark] = ana_style(style)
16     //
17     //  an utility for PlotSparse
18     //
19     tab_col  = ["k" "b" "r" "g" "c" "m" "y" "t" "G"]
20     num_col  = [ 1   2   5   3   4   6  32  16  13 ]
21     tab_mark = ["." "+" "x" "*" "D" "d" "^" "v" "o"]
22     num_mark = [ 0   1   2   3   4   5   6   7   9 ]
23
24     deff("[b] = is_digit(c)",[ "code = _str2code(c)";...
25     "b = 0 <= code & code <= 9" ])
26     n = length(style)
27     if n >= 1 then
28         c = part(style,1) ; ic = 1
29         ind = grep(tab_col, c)
30         if ind == [] then
31             if is_digit(c) then
32                 while %t
33                     ic = ic+1
34                     if ic <= n then
35                         c = part(style,ic)
36                         if ~is_digit(c) then , break, end
37                     else
38                         break
39                     end
40                 end
41                 col = evstr(part(style,1:ic-1))
42                 nb_col = xget("lastpattern")
43                 if col < 1  |  col > nb_col then
44                     col = default_markColor
45                 end
46             else
47                 col = default_markColor
48             end
49         else
50             ic = 2
51             col = num_col(ind)
52         end
53         reste = part(style,ic:n)
54         if reste == "" then
55             mark = default_markId
56         else
57             ind = grep(tab_mark, part(style,ic:n))
58             if ind == [] then
59                 mark = default_markId
60             else
61                 mark = num_mark(ind)
62             end
63         end
64     else
65         col = default_markColor ; mark = default_markId
66     end
67
68 endfunction