<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.yasunaga-lab.bio.kyutech.ac.jp/Eos/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.yasunaga-lab.bio.kyutech.ac.jp/Eos/index.php?action=history&amp;feed=atom&amp;title=Vector%28API%29</id>
		<title>Vector(API) - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.yasunaga-lab.bio.kyutech.ac.jp/Eos/index.php?action=history&amp;feed=atom&amp;title=Vector%28API%29"/>
		<link rel="alternate" type="text/html" href="http://www.yasunaga-lab.bio.kyutech.ac.jp/Eos/index.php?title=Vector(API)&amp;action=history"/>
		<updated>2026-05-15T15:57:51Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.6</generator>

	<entry>
		<id>http://www.yasunaga-lab.bio.kyutech.ac.jp/Eos/index.php?title=Vector(API)&amp;diff=3870&amp;oldid=prev</id>
		<title>Kinoshita: Created page with &quot;General/'''Vector''' is API for expression of vector.  == struct == Vector: float, int, double  typedef struct floatVector {  	unsigned long size;  	float*        data;  } flo...&quot;</title>
		<link rel="alternate" type="text/html" href="http://www.yasunaga-lab.bio.kyutech.ac.jp/Eos/index.php?title=Vector(API)&amp;diff=3870&amp;oldid=prev"/>
				<updated>2014-09-08T00:08:05Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;General/&amp;#039;&amp;#039;&amp;#039;Vector&amp;#039;&amp;#039;&amp;#039; is API for expression of vector.  == struct == Vector: float, int, double  typedef struct floatVector {  	unsigned long size;  	float*        data;  } flo...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;General/'''Vector''' is API for expression of vector.&lt;br /&gt;
&lt;br /&gt;
== struct ==&lt;br /&gt;
Vector: float, int, double&lt;br /&gt;
 typedef struct floatVector {&lt;br /&gt;
 	unsigned long size;&lt;br /&gt;
 	float*        data;&lt;br /&gt;
 } floatVector;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct intVector {&lt;br /&gt;
 	unsigned long size;&lt;br /&gt;
 	int*        data;&lt;br /&gt;
 } intVector;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct doubleVector {&lt;br /&gt;
 	unsigned long size;&lt;br /&gt;
 	double*        data;&lt;br /&gt;
 } doubleVector;&lt;br /&gt;
 &lt;br /&gt;
size: Size of Vector(Dimension)&amp;lt;br&amp;gt;&lt;br /&gt;
data: Real data&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
===Initilization===&lt;br /&gt;
 extern floatVector* floatVectorInit(floatVector* v, long size);&lt;br /&gt;
 extern intVector* intVectorInit(intVector* v, long size);&lt;br /&gt;
 extern doubleVector* doubleVectorInit(doubleVector* v, long size);&lt;br /&gt;
&lt;br /&gt;
===Free===&lt;br /&gt;
 extern floatVector* floatVectorFree(floatVector* v);&lt;br /&gt;
 extern intVector* intVectorFree(intVector* v);&lt;br /&gt;
 extern doubleVector* doubleVectorFree(doubleVector* v);&lt;br /&gt;
&lt;br /&gt;
===Addition===&lt;br /&gt;
 extern floatVector* floatVectorAdd(floatVector* v, floatVector* u, floatVector* w);&lt;br /&gt;
 extern doubleVector* doubleVectorAdd(doubleVector* v, doubleVector* u, doubleVector* w);&lt;br /&gt;
&lt;br /&gt;
===Subtraction===&lt;br /&gt;
 extern floatVector* floatVectorMinus(floatVector* v, floatVector* u, floatVector* w);&lt;br /&gt;
 extern doubleVector* doubleVectorMinus(doubleVector* v, doubleVector* u, doubleVector* w);&lt;br /&gt;
&lt;br /&gt;
===Inner product===&lt;br /&gt;
 extern double floatVectorScalarProduct(floatVector* x, floatVector* y);&lt;br /&gt;
 extern double doubleVectorScalarProduct(doubleVector* x, doubleVector* y);&lt;br /&gt;
&lt;br /&gt;
===Length===&lt;br /&gt;
 extern double lfloatVectorLength(floatVector* x);&lt;br /&gt;
 extern double ldoubleVectorLength(doubleVector* x);&lt;br /&gt;
&lt;br /&gt;
===Spline===&lt;br /&gt;
====1D Spline====&lt;br /&gt;
=====Create differential value list=====&lt;br /&gt;
 extern void lVectorSplineTableMake(floatVector* x, floatVector* y, floatVector* z);&lt;br /&gt;
 extern void ldoubleVectorSplineTableMake(doubleVector* x, doubleVector* y, doubleVector* z);&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Input&amp;lt;/th&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;x[i]&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Summation of distance from first through No. i&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;y[i]&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Data of No. i&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Output&amp;lt;/th&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;z[i]&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Differential value about No. i&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Calculate coordinates of Spline=====&lt;br /&gt;
 extern double lVectorSpline(double t, floatVector* x, floatVector* y, floatVector* z);&lt;br /&gt;
 extern double ldoubleVectorSpline(double t, doubleVector* x, doubleVector* y, doubleVector* z);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Input&amp;lt;/th&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;t&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Distance of current position&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;p&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Distance list&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;x&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Differential value list&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;y&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Coordinates list&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Output&amp;lt;/th&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;z&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Coordinates list after correction&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====2D Spline====&lt;br /&gt;
=====Create differential value list=====&lt;br /&gt;
 extern void lVectorSplineTable2DMake(floatVector* p, floatVector* x, floatVector* y, floatVector* a, floatVector* b);&lt;br /&gt;
 extern void ldoubleVectorSplineTable2DMake(doubleVector* p, doubleVector* x, doubleVector* y, doubleVector* a, doubleVector* b);&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Input&amp;lt;/th&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;x&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;x coordinates list&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;y&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;y coordinates list&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Output&amp;lt;/th&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;p[i]&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Summation of distance from first through No. i&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;a[i]&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Differential value at No. i of x coordinates&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;b[i]&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Differential value at No. i of y coordinates&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Calculate coordinates of Spline=====&lt;br /&gt;
 extern void lVectorSpline2D(double t, double* px, double* py, floatVector* p, floatVector* x, floatVector* y, floatVector* a, floatVector* b);&lt;br /&gt;
 extern void ldoubleVectorSpline2D(double t, double* px, double* py, doubleVector* p, doubleVector* x, doubleVector* y, doubleVector* a, doubleVector* b);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Input&amp;lt;/th&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;t&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Distance of current position&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;p&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Distance list&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;x&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;x coordinates list&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;y&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;y coordinates list&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;a&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Differential value list of x coordinates&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;b&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;Differential value list of y coordinates&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Output&amp;lt;/th&amp;gt; &lt;br /&gt;
		&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;px&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;x coordinates list after correction&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
	&amp;lt;tr&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;py&amp;lt;/td&amp;gt; &lt;br /&gt;
		&amp;lt;td&amp;gt;y coordinates list after correction&amp;lt;/td&amp;gt; &lt;br /&gt;
	&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kinoshita</name></author>	</entry>

	</feed>