1 #Region "Microsoft.VisualBasic::0ffe4f0e473b6530bf7b906338514edd, Microsoft.VisualBasic.Core\Text\Xml\Models\Vector.vb"
2
3     ' Author:
4     
5     '       asuka (amethyst.asuka@gcmodeller.org)
6     '       xie (genetics@smrucc.org)
7     '       xieguigang (xie.guigang@live.com)
8     
9     ' Copyright (c) 2018 GPL3 Licensed
10     
11     
12     ' GNU GENERAL PUBLIC LICENSE (GPL3)
13     
14     
15     ' This program is free software: you can redistribute it and/or modify
16     ' it under the terms of the GNU General Public License as published by
17     ' the Free Software Foundation, either version 3 of the License, or
18     ' (at your option) any later version.
19     
20     ' This program is distributed in the hope that it will be useful,
21     ' but WITHOUT ANY WARRANTY; without even the implied warranty of
22     ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23     ' GNU General Public License for more details.
24     
25     ' You should have received a copy of the GNU General Public License
26     ' along with this program. If not, see <http://www.gnu.org/licenses/>.
27
28
29
30     ' /********************************************************************************/
31
32     ' Summaries:
33
34     '     Class NumericVector
35     
36     '         Properties: Length, Vector
37     
38     '         FunctionToString
39     
40     '     Class TermsVector
41     
42     '         Properties: Terms
43     
44     '         FunctionToString
45     
46     
47     ' /********************************************************************************/
48
49 #End Region
50
51 Imports System.Runtime.CompilerServices
52 Imports System.Xml.Serialization
53 Imports Microsoft.VisualBasic.Serialization.JSON
54
55 Namespace Text.Xml.Models
56
57     ''' <summary>
58     ''' A <see cref="Double"/> type numeric sequence container
59     ''' </summary>
60     Public Class NumericVector
61
62         <XmlAttribute> Public Property Vector As Double()
63
64         ''' <summary>
65         ''' Get/Set Element ``Xi``
66         ''' </summary>
67         ''' <param name="i"></param>
68         ''' <returns></returns>
69         Default Public Property Xi(i As IntegerAs Double
70             <MethodImpl(MethodImplOptions.AggressiveInlining)>
71             Get
72                 Return Vector(i)
73             End Get
74             Set(value As Double)
75                 Vector(i) = value
76             End Set
77         End Property
78
79         ''' <summary>
80         ''' The vector length for counting the elements in <see cref="Vector"/> property.
81         ''' </summary>
82         ''' <returns></returns>
83         Public ReadOnly Property Length As Integer
84             <MethodImpl(MethodImplOptions.AggressiveInlining)>
85             Get
86                 Return CInt(Vector?.Length)
87             End Get
88         End Property
89
90         Public Overrides Function ToString() As String
91             Return Me.GetJson
92         End Function
93     End Class
94
95     Public Class TermsVector
96
97         <XmlAttribute>
98         Public Property Terms As String()
99
100         Public Overrides Function ToString() As String
101             Return Me.GetJson
102         End Function
103     End Class
104 End Namespace