From ec8e9451f0b3af6bc397aa677f77ac57f3fa6344 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Fri, 5 Apr 2024 06:45:59 +0200 Subject: [PATCH 1/4] make independent of CBLAS --- utest/test_zscal.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/utest/test_zscal.c b/utest/test_zscal.c index ffc851e8b..e40e6e0dc 100644 --- a/utest/test_zscal.c +++ b/utest/test_zscal.c @@ -13,7 +13,7 @@ CTEST(zscal, i_nan) { double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; - cblas_zscal(9, i, &nan, 1); + BLASFUNC(zscal)(9, i, &nan, 1); ASSERT_TRUE(isnan(nan[0])); ASSERT_TRUE(isnan(nan[1])); ASSERT_TRUE(isnan(nan[16])); @@ -25,7 +25,7 @@ CTEST(zscal, i_nan_inc_2) double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; - cblas_zscal(9, i, &nan, 2); + BLASFUNC(zscal)(9, i, &nan, 2); ASSERT_TRUE(isnan(nan[0])); ASSERT_TRUE(isnan(nan[1])); ASSERT_TRUE(isnan(nan[16])); @@ -36,7 +36,7 @@ CTEST(zscal, nan_i) { double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; - cblas_zscal(9, &nan, &i, 1); + BLASFUNC(zscal)(9, &nan, &i, 1); ASSERT_TRUE(isnan(i[0])); ASSERT_TRUE(isnan(i[1])); ASSERT_TRUE(isnan(i[16])); @@ -48,7 +48,7 @@ CTEST(zscal, nan_i_inc_2) double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; - cblas_zscal(9, &nan, &i, 2); + BLASFUNC(zscal)(9, &nan, &i, 2); ASSERT_TRUE(isnan(i[0])); ASSERT_TRUE(isnan(i[1])); ASSERT_TRUE(isnan(i[16])); @@ -59,7 +59,7 @@ CTEST(zscal, i_inf) { double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; - cblas_zscal(9, i, &inf, 1); + BLASFUNC(zscal)(9, i, &inf, 1); ASSERT_TRUE(isnan(inf[0])); ASSERT_TRUE(isinf(inf[1])); ASSERT_TRUE(isnan(inf[16])); @@ -71,7 +71,7 @@ CTEST(zscal, i_inf_inc_2) double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; - cblas_zscal(9, i, &inf, 2); + BLASFUNC(zscal)(9, i, &inf, 2); ASSERT_TRUE(isnan(inf[0])); ASSERT_TRUE(isinf(inf[1])); ASSERT_TRUE(isnan(inf[16])); @@ -82,7 +82,7 @@ CTEST(zscal, inf_i) { double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; - cblas_zscal(9, &inf, &i, 1); + BLASFUNC(zscal)(9, &inf, &i, 1); ASSERT_TRUE(isnan(i[0])); ASSERT_TRUE(isinf(i[1])); ASSERT_TRUE(isnan(i[16])); @@ -94,7 +94,7 @@ CTEST(zscal, inf_i_inc_2) double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; - cblas_zscal(9, &inf, &i, 2); + BLASFUNC(zscal)(9, &inf, &i, 2); ASSERT_TRUE(isnan(i[0])); ASSERT_TRUE(isinf(i[1])); ASSERT_TRUE(isnan(i[16])); From 1f080b93286b85bea630f3219b307d9767f15d69 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Fri, 5 Apr 2024 07:09:34 +0200 Subject: [PATCH 2/4] Update test_zscal.c --- utest/test_zscal.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/utest/test_zscal.c b/utest/test_zscal.c index e40e6e0dc..2ee5547b7 100644 --- a/utest/test_zscal.c +++ b/utest/test_zscal.c @@ -13,7 +13,7 @@ CTEST(zscal, i_nan) { double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; - BLASFUNC(zscal)(9, i, &nan, 1); + BLASFUNC(zscal)(9, i, nan, 1); ASSERT_TRUE(isnan(nan[0])); ASSERT_TRUE(isnan(nan[1])); ASSERT_TRUE(isnan(nan[16])); @@ -25,7 +25,7 @@ CTEST(zscal, i_nan_inc_2) double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; - BLASFUNC(zscal)(9, i, &nan, 2); + BLASFUNC(zscal)(9, i, nan, 2); ASSERT_TRUE(isnan(nan[0])); ASSERT_TRUE(isnan(nan[1])); ASSERT_TRUE(isnan(nan[16])); @@ -36,7 +36,7 @@ CTEST(zscal, nan_i) { double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; - BLASFUNC(zscal)(9, &nan, &i, 1); + BLASFUNC(zscal)(9, nan, i, 1); ASSERT_TRUE(isnan(i[0])); ASSERT_TRUE(isnan(i[1])); ASSERT_TRUE(isnan(i[16])); @@ -48,7 +48,7 @@ CTEST(zscal, nan_i_inc_2) double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; - BLASFUNC(zscal)(9, &nan, &i, 2); + BLASFUNC(zscal)(9, nan, i, 2); ASSERT_TRUE(isnan(i[0])); ASSERT_TRUE(isnan(i[1])); ASSERT_TRUE(isnan(i[16])); @@ -59,7 +59,7 @@ CTEST(zscal, i_inf) { double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; - BLASFUNC(zscal)(9, i, &inf, 1); + BLASFUNC(zscal)(9, i, inf, 1); ASSERT_TRUE(isnan(inf[0])); ASSERT_TRUE(isinf(inf[1])); ASSERT_TRUE(isnan(inf[16])); @@ -71,7 +71,7 @@ CTEST(zscal, i_inf_inc_2) double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; - BLASFUNC(zscal)(9, i, &inf, 2); + BLASFUNC(zscal)(9, i, inf, 2); ASSERT_TRUE(isnan(inf[0])); ASSERT_TRUE(isinf(inf[1])); ASSERT_TRUE(isnan(inf[16])); @@ -82,7 +82,7 @@ CTEST(zscal, inf_i) { double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; - BLASFUNC(zscal)(9, &inf, &i, 1); + BLASFUNC(zscal)(9, inf, i, 1); ASSERT_TRUE(isnan(i[0])); ASSERT_TRUE(isinf(i[1])); ASSERT_TRUE(isnan(i[16])); @@ -94,7 +94,7 @@ CTEST(zscal, inf_i_inc_2) double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; - BLASFUNC(zscal)(9, &inf, &i, 2); + BLASFUNC(zscal)(9, inf, i, 2); ASSERT_TRUE(isnan(i[0])); ASSERT_TRUE(isinf(i[1])); ASSERT_TRUE(isnan(i[16])); From d3f93c6015a8e8f879bcf719cd4c32e4a4466d96 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Fri, 5 Apr 2024 07:23:41 +0200 Subject: [PATCH 3/4] fix arguments of zscal --- utest/test_zscal.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/utest/test_zscal.c b/utest/test_zscal.c index 2ee5547b7..1d4f7bb6b 100644 --- a/utest/test_zscal.c +++ b/utest/test_zscal.c @@ -11,9 +11,11 @@ CTEST(zscal, i_nan) { + int N=9; + int incX=1; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; - BLASFUNC(zscal)(9, i, nan, 1); + BLASFUNC(zscal)(&N, i, nan, &incX); ASSERT_TRUE(isnan(nan[0])); ASSERT_TRUE(isnan(nan[1])); ASSERT_TRUE(isnan(nan[16])); @@ -22,10 +24,12 @@ CTEST(zscal, i_nan) CTEST(zscal, i_nan_inc_2) { + int N=9; + int incX=1; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; - BLASFUNC(zscal)(9, i, nan, 2); + BLASFUNC(zscal)(&N, i, nan, &incX); ASSERT_TRUE(isnan(nan[0])); ASSERT_TRUE(isnan(nan[1])); ASSERT_TRUE(isnan(nan[16])); @@ -34,9 +38,11 @@ CTEST(zscal, i_nan_inc_2) CTEST(zscal, nan_i) { + int N=9; + int incX=1; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; - BLASFUNC(zscal)(9, nan, i, 1); + BLASFUNC(zscal)(&N, nan, i, &incX); ASSERT_TRUE(isnan(i[0])); ASSERT_TRUE(isnan(i[1])); ASSERT_TRUE(isnan(i[16])); @@ -45,10 +51,12 @@ CTEST(zscal, nan_i) CTEST(zscal, nan_i_inc_2) { + int N=9; + int incX=1; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; - BLASFUNC(zscal)(9, nan, i, 2); + BLASFUNC(zscal)(&N, nan, i, &incX); ASSERT_TRUE(isnan(i[0])); ASSERT_TRUE(isnan(i[1])); ASSERT_TRUE(isnan(i[16])); @@ -57,9 +65,11 @@ CTEST(zscal, nan_i_inc_2) CTEST(zscal, i_inf) { + int N=9; + int incX=1; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; - BLASFUNC(zscal)(9, i, inf, 1); + BLASFUNC(zscal)(&N, i, inf, &incX); ASSERT_TRUE(isnan(inf[0])); ASSERT_TRUE(isinf(inf[1])); ASSERT_TRUE(isnan(inf[16])); @@ -68,10 +78,12 @@ CTEST(zscal, i_inf) CTEST(zscal, i_inf_inc_2) { + int N=9; + int incX=2; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; - BLASFUNC(zscal)(9, i, inf, 2); + BLASFUNC(zscal)(&N, i, inf, &incX); ASSERT_TRUE(isnan(inf[0])); ASSERT_TRUE(isinf(inf[1])); ASSERT_TRUE(isnan(inf[16])); @@ -80,9 +92,11 @@ CTEST(zscal, i_inf_inc_2) CTEST(zscal, inf_i) { + int N=9; + int incX=1; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; - BLASFUNC(zscal)(9, inf, i, 1); + BLASFUNC(zscal)(&N, inf, i, &incX); ASSERT_TRUE(isnan(i[0])); ASSERT_TRUE(isinf(i[1])); ASSERT_TRUE(isnan(i[16])); @@ -91,10 +105,12 @@ CTEST(zscal, inf_i) CTEST(zscal, inf_i_inc_2) { + int N=9; + int incX=2; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; - BLASFUNC(zscal)(9, inf, i, 2); + BLASFUNC(zscal)(&N, inf, i, &incX); ASSERT_TRUE(isnan(i[0])); ASSERT_TRUE(isinf(i[1])); ASSERT_TRUE(isnan(i[16])); From 9c86838279505e95d1ff180a578ac66f850932b4 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Fri, 5 Apr 2024 22:48:08 +0200 Subject: [PATCH 4/4] use blasint for INTERFACE64 compatibility --- utest/test_zscal.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/utest/test_zscal.c b/utest/test_zscal.c index 1d4f7bb6b..195e4945f 100644 --- a/utest/test_zscal.c +++ b/utest/test_zscal.c @@ -11,8 +11,8 @@ CTEST(zscal, i_nan) { - int N=9; - int incX=1; + blasint N=9; + blasint incX=1; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; BLASFUNC(zscal)(&N, i, nan, &incX); @@ -24,8 +24,8 @@ CTEST(zscal, i_nan) CTEST(zscal, i_nan_inc_2) { - int N=9; - int incX=1; + blasint N=9; + blasint incX=1; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; @@ -38,8 +38,8 @@ CTEST(zscal, i_nan_inc_2) CTEST(zscal, nan_i) { - int N=9; - int incX=1; + blasint N=9; + blasint incX=1; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; BLASFUNC(zscal)(&N, nan, i, &incX); @@ -51,8 +51,8 @@ CTEST(zscal, nan_i) CTEST(zscal, nan_i_inc_2) { - int N=9; - int incX=1; + blasint N=9; + blasint incX=1; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double nan[] = {NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0, NAN,0}; @@ -65,8 +65,8 @@ CTEST(zscal, nan_i_inc_2) CTEST(zscal, i_inf) { - int N=9; - int incX=1; + blasint N=9; + blasint incX=1; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; BLASFUNC(zscal)(&N, i, inf, &incX); @@ -78,8 +78,8 @@ CTEST(zscal, i_inf) CTEST(zscal, i_inf_inc_2) { - int N=9; - int incX=2; + blasint N=9; + blasint incX=2; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; @@ -92,8 +92,8 @@ CTEST(zscal, i_inf_inc_2) CTEST(zscal, inf_i) { - int N=9; - int incX=1; + blasint N=9; + blasint incX=1; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0}; BLASFUNC(zscal)(&N, inf, i, &incX); @@ -105,8 +105,8 @@ CTEST(zscal, inf_i) CTEST(zscal, inf_i_inc_2) { - int N=9; - int incX=2; + blasint N=9; + blasint incX=2; double i[] = {0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1 }; double inf[] = {INFINITY, 0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0, INFINITY,0};