Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit612f06b

Browse files
authored
Merge pull request#32 from stepan-neretin7/17_fix_theta_function
[ISSUE#17] Corrected the angle functions to fix the incorrected results strans function according to the documentation.
2 parents2c4cd20 +bc591b8 commit612f06b

9 files changed

+196
-10
lines changed

‎Makefile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
PGSPHERE_VERSION = 1.2.2
1+
PGSPHERE_VERSION = 1.2.3
22
EXTENSION = pg_sphere
33
RELEASE_SQL =$(EXTENSION)--$(PGSPHERE_VERSION).sql
44
USE_PGXS = 1
@@ -26,7 +26,8 @@ DATA_built = $(RELEASE_SQL) \
2626
pg_sphere--1.1.5beta2gavo--1.1.5beta4gavo.sql\
2727
pg_sphere--1.1.5beta4gavo--1.2.0.sql\
2828
pg_sphere--1.2.0--1.2.1.sql\
29-
pg_sphere--1.2.1--1.2.2.sql
29+
pg_sphere--1.2.1--1.2.2.sql\
30+
pg_sphere--1.2.2--1.2.3.sql
3031

3132
DOCS = README.pg_sphere COPYRIGHT.pg_sphere
3233
REGRESS = init tables points euler circle line ellipse poly path box index\
@@ -256,6 +257,9 @@ pg_sphere--1.2.1--1.2.2.sql:
256257
cat upgrade_scripts/$@.in>$@
257258
endif
258259

260+
pg_sphere--1.2.2--1.2.3.sql:
261+
cat upgrade_scripts/$@.in>$@
262+
259263
# end of local stuff
260264

261265
src/sscan.o : src/sparse.c

‎expected/euler.out

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,141 @@ SELECT strans '-40d,0d,40d,ZZZ' <> '-40d,0d,40d,XXX' ;
1717
f
1818
(1 row)
1919

20+
SELECT strans ( 20.0*pi()/180.0, -270.0*pi()/180.0, 70.5*pi()/180.0, 'XZY' );
21+
strans
22+
---------------------------------------
23+
0.34906585, 1.5707963, 1.2304571, XZY
24+
(1 row)
25+
26+
SELECT theta( strans ( 20.0*pi()/180.0, -270.0*pi()/180.0, 70.5*pi()/180.0, 'XZY' ) );
27+
theta
28+
---------------
29+
1.57079632679
30+
(1 row)
31+
32+
SELECT psi( strans ( 20.0*pi()/180.0, -270.0*pi()/180.0, 70.5*pi()/180.0, 'XZY' ) );
33+
psi
34+
---------------
35+
1.23045712266
36+
(1 row)
37+
38+
SELECT phi( strans ( 20.0*pi()/180.0, -270.0*pi()/180.0, 70.5*pi()/180.0, 'XZY' ) );
39+
phi
40+
----------------
41+
0.349065850399
42+
(1 row)
43+
44+
SELECT theta( strans( '20d, 30d, 40d, XZY' ) );
45+
theta
46+
----------------
47+
0.523598775598
48+
(1 row)
49+
50+
SELECT psi( strans( '20d, 30d, 40d, XZY' ) );
51+
psi
52+
----------------
53+
0.698131700798
54+
(1 row)
55+
56+
SELECT phi( strans( '20d, 30d, 40d, XZY' ) );
57+
phi
58+
----------------
59+
0.349065850399
60+
(1 row)
61+
62+
SELECT strans( '2d 20m, 10d, 0' );
63+
strans
64+
---------------------------------
65+
0.040724349, 0.17453293, 0, ZXZ
66+
(1 row)
67+
68+
SELECT theta( strans( '2d 20m, 10d, 0' ) );
69+
theta
70+
----------------
71+
0.174532925199
72+
(1 row)
73+
74+
SELECT psi( strans( '2d 20m, 10d, 0' ) );
75+
psi
76+
-----
77+
0
78+
(1 row)
79+
80+
SELECT phi( strans( '2d 20m, 10d, 0' ) );
81+
phi
82+
-----------------
83+
0.0407243492132
84+
(1 row)
85+
86+
SELECT strans ( '10d, 90d, 270d, ZXZ' );
87+
strans
88+
--------------------------------------
89+
0.17453293, 1.5707963, 4.712389, ZXZ
90+
(1 row)
91+
92+
SELECT theta( strans ( '10d, 90d, 270d, ZXZ' ) );
93+
theta
94+
---------------
95+
1.57079632679
96+
(1 row)
97+
98+
SELECT psi( strans ( '10d, 90d, 270d, ZXZ' ) );
99+
psi
100+
---------------
101+
4.71238898038
102+
(1 row)
103+
104+
SELECT phi( strans ( '10d, 90d, 270d, ZXZ' ) );
105+
phi
106+
----------------
107+
0.174532925199
108+
(1 row)
109+
110+
SELECT - strans ( '20d, 50d, 80d, XYZ' );
111+
?column?
112+
--------------------------------------
113+
4.8869219, 5.4105207, 5.9341195, ZYX
114+
(1 row)
115+
116+
SELECT theta( - strans ( '20d, 50d, 80d, XYZ' ) );
117+
theta
118+
-----------------
119+
-0.872664625997
120+
(1 row)
121+
122+
SELECT psi( - strans ( '20d, 50d, 80d, XYZ' ) );
123+
psi
124+
-----------------
125+
-0.349065850399
126+
(1 row)
127+
128+
SELECT phi( - strans ( '20d, 50d, 80d, XYZ' ) );
129+
phi
130+
---------------
131+
-1.3962634016
132+
(1 row)
133+
134+
SELECT strans( '90d, 60d, 30d' );
135+
strans
136+
---------------------------------------
137+
1.5707963, 1.0471976, 0.52359878, ZXZ
138+
(1 row)
139+
140+
SELECT theta( strans( '90d, 60d, 30d' ) );
141+
theta
142+
--------------
143+
1.0471975512
144+
(1 row)
145+
146+
SELECT psi( strans( '90d, 60d, 30d' ) );
147+
psi
148+
----------------
149+
0.523598775598
150+
(1 row)
151+
152+
SELECT phi( strans( '90d, 60d, 30d' ) );
153+
phi
154+
---------------
155+
1.57079632679
156+
(1 row)
157+

‎expected/init.out

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ CREATE EXTENSION pg_sphere;
66
select pg_sphere_version();
77
pg_sphere_version
88
-------------------
9-
1.2.2
9+
1.2.3
1010
(1 row)
1111

‎pg_sphere--1.2.2.sql.in

Lines changed: 0 additions & 2 deletions
This file was deleted.
File renamed without changes.

‎pg_sphere.control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# pg_sphere extension
22
comment = 'spherical objects with useful functions, operators and index support'
3-
default_version = '1.2.2'
3+
default_version = '1.2.3'
44
module_pathname = '$libdir/pg_sphere'
55
relocatable = true

‎sql/euler.sql

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,55 @@
11
\set ECHO none
22
SELECT set_sphere_output_precision(8);
3+
SET extra_float_digits TO-3;
34
\set ECHO all
45

56
-- checking Euler transformation operators
67

78
SELECT strans'-10d,0d,10d,ZZZ'='-10d,0d,10d,XXX' ;
89
SELECT strans'-40d,0d,40d,ZZZ'<>'-40d,0d,40d,XXX' ;
910

11+
SELECT strans (20.0*pi()/180.0,-270.0*pi()/180.0,70.5*pi()/180.0,'XZY' );
12+
13+
SELECT theta( strans (20.0*pi()/180.0,-270.0*pi()/180.0,70.5*pi()/180.0,'XZY' ) );
14+
15+
SELECT psi( strans (20.0*pi()/180.0,-270.0*pi()/180.0,70.5*pi()/180.0,'XZY' ) );
16+
17+
SELECT phi( strans (20.0*pi()/180.0,-270.0*pi()/180.0,70.5*pi()/180.0,'XZY' ) );
18+
19+
SELECT theta( strans('20d, 30d, 40d, XZY' ) );
20+
21+
SELECT psi( strans('20d, 30d, 40d, XZY' ) );
22+
23+
SELECT phi( strans('20d, 30d, 40d, XZY' ) );
24+
25+
SELECT strans('2d 20m, 10d, 0' );
26+
27+
SELECT theta( strans('2d 20m, 10d, 0' ) );
28+
29+
SELECT psi( strans('2d 20m, 10d, 0' ) );
30+
31+
SELECT phi( strans('2d 20m, 10d, 0' ) );
32+
33+
SELECT strans ('10d, 90d, 270d, ZXZ' );
34+
35+
SELECT theta( strans ('10d, 90d, 270d, ZXZ' ) );
36+
37+
SELECT psi( strans ('10d, 90d, 270d, ZXZ' ) );
38+
39+
SELECT phi( strans ('10d, 90d, 270d, ZXZ' ) );
40+
41+
SELECT- strans ('20d, 50d, 80d, XYZ' );
42+
43+
SELECT theta(- strans ('20d, 50d, 80d, XYZ' ) );
44+
45+
SELECT psi(- strans ('20d, 50d, 80d, XYZ' ) );
46+
47+
SELECT phi(- strans ('20d, 50d, 80d, XYZ' ) );
48+
49+
SELECT strans('90d, 60d, 30d' );
50+
51+
SELECT theta( strans('90d, 60d, 30d' ) );
52+
53+
SELECT psi( strans('90d, 60d, 30d' ) );
54+
55+
SELECT phi( strans('90d, 60d, 30d' ) );

‎src/euler.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,23 +203,22 @@ spheretrans_phi(PG_FUNCTION_ARGS)
203203
{
204204
SEuler*se= (SEuler*)PG_GETARG_POINTER(0);
205205

206-
PG_RETURN_POINTER(&se->phi);
206+
PG_RETURN_FLOAT8(se->phi);
207207
}
208208

209209
Datum
210210
spheretrans_theta(PG_FUNCTION_ARGS)
211211
{
212212
SEuler*se= (SEuler*)PG_GETARG_POINTER(0);
213-
214-
PG_RETURN_POINTER(&se->theta);
213+
PG_RETURN_FLOAT8(se->theta);
215214
}
216215

217216
Datum
218217
spheretrans_psi(PG_FUNCTION_ARGS)
219218
{
220219
SEuler*se= (SEuler*)PG_GETARG_POINTER(0);
221220

222-
PG_RETURN_POINTER(&se->psi);
221+
PG_RETURN_FLOAT8(se->psi);
223222
}
224223

225224
Datum
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
-- Nothing to upgrade in the schema

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp