summaryrefslogtreecommitdiff
path: root/usr/src/man/man3mvec
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/man/man3mvec')
-rw-r--r--usr/src/man/man3mvec/Makefile42
-rw-r--r--usr/src/man/man3mvec/vatan2_.3mvec103
-rw-r--r--usr/src/man/man3mvec/vatan_.3mvec100
-rw-r--r--usr/src/man/man3mvec/vcos_.3mvec100
-rw-r--r--usr/src/man/man3mvec/vcospi_.3mvec111
-rw-r--r--usr/src/man/man3mvec/vexp_.3mvec102
-rw-r--r--usr/src/man/man3mvec/vhypot_.3mvec103
-rw-r--r--usr/src/man/man3mvec/vlog_.3mvec100
-rw-r--r--usr/src/man/man3mvec/vpow_.3mvec105
-rw-r--r--usr/src/man/man3mvec/vrhypot_.3mvec124
-rw-r--r--usr/src/man/man3mvec/vrsqrt_.3mvec125
-rw-r--r--usr/src/man/man3mvec/vsin_.3mvec100
-rw-r--r--usr/src/man/man3mvec/vsincos_.3mvec105
-rw-r--r--usr/src/man/man3mvec/vsincospi_.3mvec126
-rw-r--r--usr/src/man/man3mvec/vsinpi_.3mvec117
-rw-r--r--usr/src/man/man3mvec/vsqrt_.3mvec99
-rw-r--r--usr/src/man/man3mvec/vz_abs_.3mvec99
-rw-r--r--usr/src/man/man3mvec/vz_exp_.3mvec94
-rw-r--r--usr/src/man/man3mvec/vz_log_.3mvec89
-rw-r--r--usr/src/man/man3mvec/vz_pow_.3mvec97
20 files changed, 2041 insertions, 0 deletions
diff --git a/usr/src/man/man3mvec/Makefile b/usr/src/man/man3mvec/Makefile
new file mode 100644
index 0000000000..98dd68cc66
--- /dev/null
+++ b/usr/src/man/man3mvec/Makefile
@@ -0,0 +1,42 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet
+# at http://www.illumos.org/license/CDDL.
+#
+
+# Copyright (c) 2012, Igor Kozhukhov <ikozhukhov@gmail.com>
+
+include ../../Makefile.master
+
+MANSECT = 3mvec
+
+MANFILES = vatan2_.3mvec \
+ vatan_.3mvec \
+ vcos_.3mvec \
+ vcospi_.3mvec \
+ vexp_.3mvec \
+ vhypot_.3mvec \
+ vlog_.3mvec \
+ vpow_.3mvec \
+ vrhypot_.3mvec \
+ vrsqrt_.3mvec \
+ vsin_.3mvec \
+ vsincos_.3mvec \
+ vsincospi_.3mvec \
+ vsinpi_.3mvec \
+ vsqrt_.3mvec \
+ vz_abs_.3mvec \
+ vz_exp_.3mvec \
+ vz_log_.3mvec \
+ vz_pow_.3mvec
+
+.KEEP_STATE:
+
+include ../Makefile.man
+
+install: $(ROOTMANFILES)
diff --git a/usr/src/man/man3mvec/vatan2_.3mvec b/usr/src/man/man3mvec/vatan2_.3mvec
new file mode 100644
index 0000000000..d809b54992
--- /dev/null
+++ b/usr/src/man/man3mvec/vatan2_.3mvec
@@ -0,0 +1,103 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vatan2_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vatan2_, vatan2f_ \- vector atan2 functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvatan2_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR,
+ \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR, \fBdouble * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvatan2f_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR,
+ \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR, \fBfloat * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBatan2\fR(\fIy\fR, \fIx\fR) for an
+entire vector of values at once. The first parameter specifies the number of
+values to compute. Subsequent parameters specify the argument and result
+vectors. Each vector is described by a pointer to the first element and a
+stride, which is the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvatan2_\fR(\fIn,\fR \fIy\fR, \fIsy\fR, \fIx\fR, \fIsx\fR,
+\fIz\fR, \fIsz\fR) computes \fIz\fR[\fIi\fR * *\fIsz\fR] =
+\fBatan2\fR(\fIy\fR[\fIi\fR * *\fIsy\fR], \fIx\fR[\fIi\fR * *\fIsx\fR]) for
+each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvatan2f_()\fR function performs
+the same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBatan2\fR(3M) functions given the same arguments.
+Non-exceptional results, however, are accurate to within a unit in the last
+place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the same way as the
+\fBatan2()\fR functions when \fBc99\fR \fBMATHERREXCEPT\fR conventions are in
+effect. See \fBatan2\fR(3M) for the results for special cases.
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBatan2\fR(3M), \fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M),
+\fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vatan_.3mvec b/usr/src/man/man3mvec/vatan_.3mvec
new file mode 100644
index 0000000000..c7eab0a2c0
--- /dev/null
+++ b/usr/src/man/man3mvec/vatan_.3mvec
@@ -0,0 +1,100 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vatan_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vatan_, vatanf_ \- vector arctangent functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvatan_\fR(\fBint *\fR\fIn\fR,\fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvatanf_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBatan\fR(\fIx\fR) for an entire vector
+of values at once. The first parameter specifies the number of values to
+compute. Subsequent parameters specify the argument and result vectors. Each
+vector is described by a pointer to the first element and a stride, which is
+the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvatan_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIy\fR, \fIsy\fR)
+computes \fIy\fR[\fIi\fR * *\fIsy\fR] = \fBatan\fR(\fIx\fR[\fIi\fR *
+*\fIsx\fR]) for each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvatanf_()\fR
+function performs the same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBatan\fR(3M) functions given the same arguments.
+Non-exceptional results, however, are accurate to within a unit in the last
+place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the same way as the
+\fBatan()\fR functions when \fBc99\fR \fBMATHERREXCEPT\fR conventions are in
+effect. See \fBatan\fR(3M) for the results for special cases.
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBatan\fR(3M), \fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M),
+\fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vcos_.3mvec b/usr/src/man/man3mvec/vcos_.3mvec
new file mode 100644
index 0000000000..146d707c65
--- /dev/null
+++ b/usr/src/man/man3mvec/vcos_.3mvec
@@ -0,0 +1,100 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vcos_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vcos_, vcosf_ \- vector cosine functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvcos_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvcosf_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBcos\fR(\fIx\fR) for an entire vector
+of values at once. The first parameter specifies the number of values to
+compute. Subsequent parameters specify the argument and result vectors. Each
+vector is described by a pointer to the first element and a stride, which is
+the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvcos_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIy\fR, \fIsy\fR)
+computes \fIy\fR[\fIi\fR * *\fIsy\fR] = \fBcos\fR(\fIx\fR[\fIi\fR * *\fIsx\fR])
+for each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvcosf_()\fR function
+performs the same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBcos\fR(3M) functions given the same arguments.
+Non-exceptional results, however, are accurate to within a unit in the last
+place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the same way as the
+\fBcos()\fR functions when \fBc99\fR \fBMATHERREXCEPT\fR conventions are in
+effect. See \fBcos\fR(3M) for the results for special cases.
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBcos\fR(3M), \fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M),
+\fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vcospi_.3mvec b/usr/src/man/man3mvec/vcospi_.3mvec
new file mode 100644
index 0000000000..8334301d65
--- /dev/null
+++ b/usr/src/man/man3mvec/vcospi_.3mvec
@@ -0,0 +1,111 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vcospi_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vcospi_, vcospif_ \- vector cospi functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvcospi_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvcosfpi_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBcospi\fR(\fIx\fR), defined by
+\fBcospi\fR(\fIx\fR) = \fBcos\fR(\c
+.if n pi\c
+.if t \(*p
+\c
+ * \fIx\fR), for an entire vector of values at once. The first parameter
+specifies the number of values to compute. Subsequent parameters specify the
+argument and result vectors. Each vector is described by a pointer to the first
+element and a stride, which is the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvcospi_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIy\fR, \fIsy\fR)
+computes \fIy\fR[\fIi\fR * *\fIsy\fR] = \fBcospi\fR(\fIx\fR[\fIi\fR *
+*\fIsx\fR]) for each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvcospif_()\fR
+function performs the same computation for single precision data.
+.sp
+.LP
+Non-exceptional results are accurate to within a unit in the last place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the spirit of IEEE 754.
+In particular,
+.RS +4
+.TP
+.ie t \(bu
+.el o
+\fBcospi\fR(NaN) is NaN,
+.RE
+.RS +4
+.TP
+.ie t \(bu
+.el o
+\fBcospi\fR(\(+-Inf) is NaN, and an invalid operation exception is raised.
+.RE
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M), \fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vexp_.3mvec b/usr/src/man/man3mvec/vexp_.3mvec
new file mode 100644
index 0000000000..146c25c259
--- /dev/null
+++ b/usr/src/man/man3mvec/vexp_.3mvec
@@ -0,0 +1,102 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vexp_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vexp_, vexpf_ \- vector exponential functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvexp_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvexpf_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBexp\fR(\fIx\fR) for an entire vector
+of values at once. The first parameter specifies the number of values to
+compute. Subsequent parameters specify the argument and result vectors. Each
+vector is described by a pointer to the first element and a stride, which is
+the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvexp_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIy\fR, \fIsy\fR)
+computes \fIy\fR[\fIi\fR * *\fIsy\fR] = \fBexp\fR(\fIx\fR[\fIi\fR * *\fIsx\fR])
+for each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvexpf_()\fR function
+performs the same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBexp\fR(3M) functions given the same arguments.
+Non-exceptional results, however, are accurate to within a unit in the last
+place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+On SPARC, the \fBvexpf_()\fR function delivers +0 rather than a subnormal
+result for arguments in the range -103.2789 <= \fIx\fR <= -87.3365. Otherwise,
+these functions handle special cases and exceptions in the same way as the
+\fBexp()\fR functions when \fBc99\fR \fBMATHERREXCEPT\fR conventions are in
+effect. See \fBexp\fR(3M) for the results for special cases.
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBexp\fR(3M), \fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M),
+\fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vhypot_.3mvec b/usr/src/man/man3mvec/vhypot_.3mvec
new file mode 100644
index 0000000000..9916c46746
--- /dev/null
+++ b/usr/src/man/man3mvec/vhypot_.3mvec
@@ -0,0 +1,103 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vhypot_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vhypot_, vhypotf_ \- vector hypotenuse functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvhypot_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR, \fBdouble * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvhypotf_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR, \fBfloat * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBhypot\fR(\fIx\fR, \fIy\fR) for an
+entire vector of values at once. The first parameter specifies the number of
+values to compute. Subsequent parameters specify the argument and result
+vectors. Each vector is described by a pointer to the first element and a
+stride, which is the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvhypot_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIy\fR, \fIsy\fR,
+\fIz\fR, \fIsz\fR) computes \fIz\fR[\fIi\fR * *\fIsz\fR] =
+\fBhypot\fR(\fIx\fR[\fIi\fR * *\fIsx\fR], \fIy\fR[\fIi\fR * *\fIsy\fR]) for
+each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvhypotf_()\fR function performs
+the same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBhypot\fR(3M) functions given the same arguments.
+Non-exceptional results, however, are accurate to within a unit in the last
+place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the same way as the
+\fBhypot()\fR functions when \fBc99\fR \fBMATHERREXCEPT\fR conventions are in
+effect. See \fBhypot\fR(3M) for the results for special cases.
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBhypot\fR(3M), \fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M),
+\fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vlog_.3mvec b/usr/src/man/man3mvec/vlog_.3mvec
new file mode 100644
index 0000000000..84522e98e0
--- /dev/null
+++ b/usr/src/man/man3mvec/vlog_.3mvec
@@ -0,0 +1,100 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vlog_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vlog_, vlogf_ \- vector logarithm functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvlog_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvlogf_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBlog\fR(\fIx\fR) for an entire vector
+of values at once. The first parameter specifies the number of values to
+compute. Subsequent parameters specify the argument and result vectors. Each
+vector is described by a pointer to the first element and a stride, which is
+the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvlog_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIy\fR, \fIsy\fR)
+computes \fIy\fR[\fIi\fR * *\fIsy\fR] = \fBlog\fR(\fIx\fR[\fIi\fR * *\fIsx\fR])
+for each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvlogf_()\fR function
+performs the same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBlog\fR(3M) functions given the same arguments.
+Non-exceptional results, however, are accurate to within a unit in the last
+place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the same way as the
+\fBlog()\fR functions when \fBc99\fR \fBMATHERREXCEPT\fR conventions are in
+effect. See \fBlog\fR(3M) for the results for special cases.
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBlog\fR(3M), \fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M),
+\fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vpow_.3mvec b/usr/src/man/man3mvec/vpow_.3mvec
new file mode 100644
index 0000000000..f7fec2ea6e
--- /dev/null
+++ b/usr/src/man/man3mvec/vpow_.3mvec
@@ -0,0 +1,105 @@
+'\" te
+.\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vpow_ 3MVEC "16 Jan 2009" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vpow_, vpowf_ \- vector power functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvpow_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR, \fBdouble * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvpowf_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR, \fBfloat * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBpow\fR(\fIx\fR, \fIy\fR) for an entire
+vector of values at once. The first parameter specifies the number of values to
+compute. Subsequent parameters specify the argument and result vectors. Each
+vector is described by a pointer to the first element and a stride, which is
+the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvpow_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIy\fR, \fIsy\fR,
+\fIz\fR, \fIsz\fR) computes \fIz\fR[\fIi\fR * *\fIsz\fR] =
+\fBpow\fR(\fIx\fR[\fIi\fR * *\fIsx\fR], \fIy\fR[\fIi\fR * *\fIsy\fR]) for each
+\fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvpowf_()\fR function performs the
+same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBpow\fR(3M) functions given the same arguments.
+Non-exceptional results, however, are accurate to within a unit in the last
+place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+The results of these functions for special cases and exceptions match that of
+the \fBpow()\fR functions when the latter are used in a program compiled with
+the \fBcc\fR compiler driver (that is, not SUSv3-conforming) and the expression
+(\fBmath_errhandling\fR & \fBMATH_ERREXCEPT\fR) is non-zero. These functions do
+not set \fBerrno\fR. See \fBpow\fR(3M) for the results for special cases.
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBpow\fR(3M), \fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M),
+\fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vrhypot_.3mvec b/usr/src/man/man3mvec/vrhypot_.3mvec
new file mode 100644
index 0000000000..b0f7a9f84a
--- /dev/null
+++ b/usr/src/man/man3mvec/vrhypot_.3mvec
@@ -0,0 +1,124 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vrhypot_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vrhypot_, vrhypotf_ \- vector reciprocal hypotenuse functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvrhypot_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR, \fBdouble * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvrhypotf_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR, \fBfloat * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBrhypot\fR(\fIx\fR, \fIy\fR), defined
+by \fBrhypot\fR(\fIx\fR, \fIy\fR) = 1 / \fBhypot\fR(\fIx\fR, \fIy\fR), for an
+entire vector of values at once. The first parameter specifies the number of
+values to compute. Subsequent parameters specify the argument and result
+vectors. Each vector is described by a pointer to the first element and a
+stride, which is the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvrhypot_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIy\fR, \fIsy\fR,
+\fIz\fR, \fIsz\fR) computes \fIz\fR[\fIi\fR * *\fIsz\fR] =
+\fBrhypot\fR(\fIx\fR[\fIi\fR * *\fIsx\fR], \fIy\fR[\fIi\fR * *\fIsy\fR]) for
+each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvrhypotf_()\fR function
+performs the same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of evaluating 1.0 / \fBhypot\fR(\fIx\fR, \fIy\fR) given the same
+arguments. Non-exceptional results, however, are accurate to within a unit in
+the last place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the spirit of IEEE 754.
+In particular,
+.RS +4
+.TP
+.ie t \(bu
+.el o
+if x or \fIy\fR is \(+-Inf, \fBrhypot\fR(\fIx\fR, \fIy\fR) is +0, even if the
+other of \fIx\fR or \fIy\fR is NaN,
+.RE
+.RS +4
+.TP
+.ie t \(bu
+.el o
+if x or \fIy\fR is NaN and neither is infinite, \fBrhypot\fR(\fIx\fR, \fIy\fR)
+is NaN
+.RE
+.RS +4
+.TP
+.ie t \(bu
+.el o
+if \fIx\fR and \fIy\fR are both zero, \fBrhypot\fR(\fIx\fR, \fIy\fR) is +0, and
+a division-by-zero exception is raised.
+.RE
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBhypot\fR(3M), \fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M),
+\fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vrsqrt_.3mvec b/usr/src/man/man3mvec/vrsqrt_.3mvec
new file mode 100644
index 0000000000..b8c6e7a7e3
--- /dev/null
+++ b/usr/src/man/man3mvec/vrsqrt_.3mvec
@@ -0,0 +1,125 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vrsqrt_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vrsqrt_, vrsqrtf_ \- vector reciprocal square root functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvrsqrt_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvrsqrtf_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBrsqrt\fR(\fIx\fR), defined by
+\fBrsqrt\fR(\fIx\fR) = 1 / \fBsqrt\fR(\fIx\fR), for an entire vector of values
+at once. The first parameter specifies the number of values to compute.
+Subsequent parameters specify the argument and result vectors. Each vector is
+described by a pointer to the first element and a stride, which is the
+increment between successive elements.
+.sp
+.LP
+Specifically, \fBvrsqrt_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIy\fR, \fIsy\fR)
+computes \fIy\fR[\fIi\fR * *\fIsy\fR] = \fBrsqrt\fR(\fIx\fR[\fIi\fR *
+*\fIsx\fR]) for each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvrsqrtf_()\fR
+function performs the same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of evaluating 1.0 / \fBsqrt\fR(\fIx\fR) given the same arguments.
+Non-exceptional results, however, are accurate to within a unit in the last
+place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the spirit of IEEE 754.
+In particular,
+.RS +4
+.TP
+.ie t \(bu
+.el o
+if \fIx\fR < 0, \fBrsqrt\fR(\fIx\fR) is NaN, and an invalid operation exception
+is raised,
+.RE
+.RS +4
+.TP
+.ie t \(bu
+.el o
+\fBrsqrt\fR(NaN) is NaN,
+.RE
+.RS +4
+.TP
+.ie t \(bu
+.el o
+\fBrsqrt\fR(+Inf) is +0,
+.RE
+.RS +4
+.TP
+.ie t \(bu
+.el o
+\fBrsqrt\fR(\(+-0) is \(+-Inf, and a division-by-zero exception is raised.
+.RE
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBsqrt\fR(3M), \fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M),
+\fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vsin_.3mvec b/usr/src/man/man3mvec/vsin_.3mvec
new file mode 100644
index 0000000000..f141e7e3e7
--- /dev/null
+++ b/usr/src/man/man3mvec/vsin_.3mvec
@@ -0,0 +1,100 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vsin_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vsin_, vsinf_ \- vector sine functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvsin_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvsinf_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBsin\fR(\fIx\fR) for an entire vector
+of values at once. The first parameter specifies the number of values to
+compute. Subsequent parameters specify the argument and result vectors. Each
+vector is described by a pointer to the first element and a stride, which is
+the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvsin_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIy\fR, \fIsy\fR)
+computes \fIy\fR[\fIi\fR * *\fIsy\fR] = \fBsin\fR(\fIx\fR[\fIi\fR * *\fIsx\fR])
+for each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvsinf_()\fR function
+performs the same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBsin\fR(3M) functions given the same arguments.
+Non-exceptional results, however, are accurate to within a unit in the last
+place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the same way as the
+\fBsin()\fR functions when \fBc99\fR \fBMATHERREXCEPT\fR conventions are in
+effect. See \fBsin\fR(3M) for the results for special cases.
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBsin\fR(3M), \fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M),
+\fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vsincos_.3mvec b/usr/src/man/man3mvec/vsincos_.3mvec
new file mode 100644
index 0000000000..afbb8f4096
--- /dev/null
+++ b/usr/src/man/man3mvec/vsincos_.3mvec
@@ -0,0 +1,105 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vsincos_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vsincos_, vsincosf_ \- vector sincos functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvsincos_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIs\fR, \fBint *\fR\fIstrides\fR, \fBdouble * restrict\fR \fIc\fR,
+ \fBint *\fR\fIstridec\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvsincosf_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIs\fR, \fBint *\fR\fIstrides\fR, \fBfloat * restrict\fR \fIc\fR,
+ \fBint *\fR\fIstridec\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate both \fBsin\fR(\fIx\fR) and \fBcos\fR(\fIx\fR) for an
+entire vector of values at once. The first parameter specifies the number of
+values to compute. Subsequent parameters specify the argument and result
+vectors. Each vector is described by a pointer to the first element and a
+stride, which is the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvsincos_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIs\fR, \fIss\fR,
+\fIc\fR, \fIsc\fR) simultaneously computes \fIs\fR[\fIi\fR * *\fIss\fR] =
+\fBsin\fR(\fIx\fR[\fIi\fR * *\fIsx\fR]) and \fIc\fR[\fIi\fR * *\fIsc\fR] =
+\fBcos\fR(\fIx\fR[\fIi\fR * *\fIsx\fR]) for each \fIi\fR = 0, 1, ..., *\fIn\fR
+- 1. The \fBvsincosf_()\fR function performs the same computation for single
+precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBsincos\fR(3M) functions given the same arguments.
+Non-exceptional results, however, are accurate to within a unit in the last
+place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the same way as the
+\fBsin()\fR and \fBcos()\fR functions when \fBc99\fR \fBMATHERREXCEPT\fR
+conventions are in effect. See \fBsin\fR(3M) and \fBcos\fR(3M) for the results
+for special cases.
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBcos\fR(3M), \fBsin\fR(3M), \fBsincos\fR(3M), \fBfeclearexcept\fR(3M),
+\fBfetestexcept\fR(3M), \fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vsincospi_.3mvec b/usr/src/man/man3mvec/vsincospi_.3mvec
new file mode 100644
index 0000000000..109e365254
--- /dev/null
+++ b/usr/src/man/man3mvec/vsincospi_.3mvec
@@ -0,0 +1,126 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vsincospi_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vsincospi_, vsincospif_ \- vector sincospi functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvsincospi_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIs\fR, \fBint *\fR\fIstrides\fR, \fBdouble * restrict\fR \fIc\fR,
+ \fBint *\fR\fIstridec\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvsincospif_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIs\fR, \fBint *\fR\fIstrides\fR, \fBfloat * restrict\fR \fIc\fR,
+ \fBint *\fR\fIstridec\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate both \fBsinpi\fR(\fIx\fR) and \fBcospi\fR(\fIx\fR),
+defined by \fBsinpi\fR(\fIx\fR) = \fBsin\fR(\c
+.if n pi\c
+.if t \(*p
+\c
+ * \fIx\fR) and \fBcospi\fR(\fIx\fR) = \fBcos\fR(\c
+.if n pi\c
+.if t \(*p
+\c
+ * \fIx\fR), for an entire vector of values at once. The first parameter
+specifies the number of values to compute. Subsequent parameters specify the
+argument and result vectors. Each vector is described by a pointer to the first
+element and a stride, which is the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvsincospi_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIs\fR, \fIss\fR,
+\fIc\fR, \fIsc\fR) simultaneously computes \fIs\fR[\fIi\fR * *\fIss\fR] =
+\fBsinpi\fR(\fIx\fR[\fIi\fR * *\fIsx\fR]) and \fIc\fR[\fIi\fR * *\fIsc\fR] =
+\fBcospi\fR(\fIx\fR[\fIi\fR * *\fIsx\fR]) for each \fIi\fR = 0, 1, ...,
+*\fIn\fR - 1. The \fBvsincosf_()\fR function performs the same computation for
+single precision data.
+.sp
+.LP
+Non-exceptional results are accurate to within a unit in the last place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the spirit of IEEE 754.
+In particular,
+.RS +4
+.TP
+.ie t \(bu
+.el o
+\fBsinpi\fR(NaN), \fBcospi\fR(NaN) are NaN,
+.RE
+.RS +4
+.TP
+.ie t \(bu
+.el o
+\fBsinpi\fR(\(+-0) is \(+-0,
+.RE
+.RS +4
+.TP
+.ie t \(bu
+.el o
+\fBsinpi\fR(\(+-Inf), \fBcospi\fR(\(+-Inf) are NaN, and an invalid operation
+exception is raised.
+.RE
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M), \fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vsinpi_.3mvec b/usr/src/man/man3mvec/vsinpi_.3mvec
new file mode 100644
index 0000000000..1e7262508d
--- /dev/null
+++ b/usr/src/man/man3mvec/vsinpi_.3mvec
@@ -0,0 +1,117 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vsinpi_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vsinpi_, vsinpif_ \- vector sinpi functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvsinpi_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvsinpif_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBsinpi\fR(\fIx\fR), defined by
+\fBsinpi\fR(\fIx\fR) = \fBsin\fR(\c
+.if n pi\c
+.if t \(*p
+\c
+ * \fIx\fR), for an entire vector of values at once. The first parameter
+specifies the number of values to compute. Subsequent parameters specify the
+argument and result vectors. Each vector is described by a pointer to the first
+element and a stride, which is the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvsinpi_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIy\fR, \fIsy\fR)
+computes \fIy\fR[\fIi\fR * *\fIsy\fR] = \fBsinpi\fR(\fIx\fR[\fIi\fR *
+*\fIsx\fR]) for each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvsinpif_()\fR
+function performs the same computation for single precision data.
+.sp
+.LP
+Non-exceptional results are accurate to within a unit in the last place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the spirit of IEEE 754.
+In particular,
+.RS +4
+.TP
+.ie t \(bu
+.el o
+\fBsinpi\fR(NaN) is NaN,
+.RE
+.RS +4
+.TP
+.ie t \(bu
+.el o
+\fBsinpi\fR(\(+-0) is \(+-0,
+.RE
+.RS +4
+.TP
+.ie t \(bu
+.el o
+\fBsinpi\fR(\(+-Inf) is NaN, and an invalid operation exception is raised.
+.RE
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M), \fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vsqrt_.3mvec b/usr/src/man/man3mvec/vsqrt_.3mvec
new file mode 100644
index 0000000000..d27b5e8e74
--- /dev/null
+++ b/usr/src/man/man3mvec/vsqrt_.3mvec
@@ -0,0 +1,99 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vsqrt_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vsqrt_, vsqrtf_ \- vector square root functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvsqrt_\fR(\fBint *\fR\fIn\fR, \fBdouble * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvsqrtf_\fR(\fBint *\fR\fIn\fR, \fBfloat * restrict\fR \fIx\fR, \fBint *\fR\fIstridex\fR,
+ \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the function \fBsqrt\fR(\fIx\fR) for an entire vector
+of values at once. The first parameter specifies the number of values to
+compute. Subsequent parameters specify the argument and result vectors. Each
+vector is described by a pointer to the first element and a stride, which is
+the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvsqrt_\fR(\fIn\fR, \fIx\fR, \fIsx\fR, \fIy\fR, \fIsy\fR)
+computes \fIy\fR[\fIi\fR * *\fIsy\fR] = \fBsqrt\fR(\fIx\fR[\fIi\fR *
+*\fIsx\fR]) for each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvsqrtf_()\fR
+function performs the same computation for single precision data.
+.sp
+.LP
+Unlike their scalar counterparts, these functions do not always deliver
+correctly rounded results. However, the error in each non-exceptional result is
+less than one unit in the last place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the same way as the
+\fBsqrt()\fR functions when \fBc99\fR \fBMATHERREXCEPT\fR conventions are in
+effect. See \fBsqrt\fR(3M) for the results for special cases.
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBsqrt\fR(3M), \fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M),
+\fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vz_abs_.3mvec b/usr/src/man/man3mvec/vz_abs_.3mvec
new file mode 100644
index 0000000000..7464b6ea8d
--- /dev/null
+++ b/usr/src/man/man3mvec/vz_abs_.3mvec
@@ -0,0 +1,99 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vz_abs_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vz_abs_, vc_abs_ \- vector complex absolute value functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvz_abs_\fR(\fBint *\fR\fIn\fR, \fBdouble complex * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR, \fBdouble * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvc_abs_\fR(\fBint *\fR\fIn\fR, \fBfloat complex * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR, \fBfloat * restrict\fR \fIy\fR, \fBint *\fR\fIstridey\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions compute the magnitude (or modulus) | \fIz\fR | for an entire
+vector of values at once. The first parameter specifies the number of values to
+compute. Subsequent parameters specify the argument and result vectors. Each
+vector is described by a pointer to the first element and a stride, which is
+the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvz_abs_\fR(\fIn,\fR \fIz\fR, \fIsz\fR, \fIy\fR, \fIsy\fR)
+computes \fIy\fR[\fIi\fR * *\fIsy\fR] = | \fIz\fR[\fIi\fR * *\fIsz\fR] | for
+each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvc_abs_()\fR function performs
+the same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBcabs\fR(3M) functions given the same arguments.
+Non-exceptional results, however, are accurate to within a unit in the last
+place.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+These functions handle special cases and exceptions in the spirit of IEEE 754.
+See \fBcabs\fR(3M) for the results for special cases.
+.sp
+.LP
+An application wanting to check for exceptions should call
+\fBfeclearexcept\fR(\fBFE_ALL_EXCEPT\fR) before calling these functions. On
+return, if \fBfetestexcept\fR(\fBFE_INVALID\fR | \fBFE_DIVBYZERO\fR |
+\fBFE_OVERFLOW\fR | \fBFE_UNDERFLOW\fR) is non-zero, an exception has been
+raised. The application can then examine the result or argument vectors for
+exceptional values. Some vector functions can raise the inexact exception even
+if all elements of the argument array are such that the numerical results are
+exact.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBcabs\fR(3M), \fBfeclearexcept\fR(3M), \fBfetestexcept\fR(3M),
+\fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vz_exp_.3mvec b/usr/src/man/man3mvec/vz_exp_.3mvec
new file mode 100644
index 0000000000..b860dd3722
--- /dev/null
+++ b/usr/src/man/man3mvec/vz_exp_.3mvec
@@ -0,0 +1,94 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vz_exp_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vz_exp_, vc_exp_ \- vector complex exponential functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvz_exp_\fR(\fBint *\fR\fIn\fR, \fBdouble complex * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR, \fBdouble complex * restrict\fR \fIw\fR \fBint *\fR\fIstridew\fR,
+ \fBdouble *\fR \fItmp\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvc_exp_\fR(\fBint *\fR\fIn\fR, \fBfloat complex * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR, \fBfloat complex * restrict\fR \fIw\fR, \fBint *\fR\fIstridew\fR,
+ \fBfloat *\fR \fItmp\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the complex function \fBexp\fR(\fIz\fR) for an entire
+vector of values at once. The first parameter specifies the number of values to
+compute. Subsequent parameters specify the argument and result vectors. Each
+vector is described by a pointer to the first element and a stride, which is
+the increment between successive elements. The last argument is a pointer to
+scratch storage; this storage must be large enough to hold *\fIn\fR consecutive
+values of the real type corresponding to the complex type of the argument and
+result.
+.sp
+.LP
+Specifically, \fBvz_exp_\fR(\fIn\fR, \fIz\fR, \fIsz\fR, \fIw\fR, \fIsw\fR,
+\fItmp\fR) computes \fIw\fR[\fIi\fR * *\fIsw\fR] = \fBexp\fR(\fIz\fR[\fIi\fR *
+*\fIsz\fR]) for each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvc_exp_()\fR
+function performs the same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBcexp\fR(3M) functions given the same arguments.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+Unlike the c99 \fBcexp\fR(3M) functions, the vector complex exponential
+functions make no attempt to handle special cases and exceptions; they simply
+use textbook formulas to compute a complex exponential in terms of real
+elementary functions. As a result, these functions can raise different
+exceptions and/or deliver different results from \fBcexp()\fR.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBcexp\fR(3M), \fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vz_log_.3mvec b/usr/src/man/man3mvec/vz_log_.3mvec
new file mode 100644
index 0000000000..e40b293565
--- /dev/null
+++ b/usr/src/man/man3mvec/vz_log_.3mvec
@@ -0,0 +1,89 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vz_log_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vz_log_, vc_log_ \- vector complex logarithm functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvz_log_\fR(\fBint *\fR\fIn\fR, \fBdouble complex * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR, \fBdouble _complex * restrict\fR \fIw\fR, \fBint *\fR\fIstridew\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvc_log_\fR(\fBint *\fR\fIn\fR, \fBfloat complex * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR, \fBfloat complex * restrict\fR \fIw\fR, \fBint *\fR\fIstridew\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the complex function \fBlog\fR(\fIz\fR) for an entire
+vector of values at once. The first parameter specifies the number of values to
+compute. Subsequent parameters specify the argument and result vectors. Each
+vector is described by a pointer to the first element and a stride, which is
+the increment between successive elements.
+.sp
+.LP
+Specifically, \fBvz_log_\fR(\fIn\fR, \fIz\fR, \fIsz\fR, \fIw\fR, \fIsw\fR)
+computes \fIw\fR[\fIi\fR * *\fIsw\fR] = \fBlog\fR(\fIz\fR[\fIi\fR * *\fIsz\fR])
+for each \fIi\fR = 0, 1, ..., *\fIn\fR - 1. The \fBvc_log_()\fR function
+performs the same computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBclog\fR(3M) functions given the same arguments.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+Unlike the c99 \fBclog\fR(3M) functions, the vector complex exponential
+functions make no attempt to handle special cases and exceptions; they simply
+use textbook formulas to compute a complex exponential in terms of real
+elementary functions. As a result, these functions can raise different
+exceptions and/or deliver different results from \fBclog()\fR.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBclog\fR(3M), \fBattributes\fR(5)
diff --git a/usr/src/man/man3mvec/vz_pow_.3mvec b/usr/src/man/man3mvec/vz_pow_.3mvec
new file mode 100644
index 0000000000..7ee7a0e847
--- /dev/null
+++ b/usr/src/man/man3mvec/vz_pow_.3mvec
@@ -0,0 +1,97 @@
+'\" te
+.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
+.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
+.TH vz_pow_ 3MVEC "14 Dec 2007" "SunOS 5.11" "Vector Math Library Functions"
+.SH NAME
+vz_pow_, vc_pow_ \- vector complex power functions
+.SH SYNOPSIS
+.LP
+.nf
+cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lmvec\fR [ \fIlibrary\fR\&.\|.\|. ]
+
+\fBvoid\fR \fBvz_pow_\fR(\fBint *\fR\fIn\fR, \fBdouble complex * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR, \fBdouble complex * restrict\fR \fIw\fR, \fBint *\fR\fIstridew\fR,
+ \fBdouble complex * restrict\fR \fIu\fR, \fBint *\fR\fIstrideu\fR,
+ \fBdouble *\fR \fItmp\fR);
+.fi
+
+.LP
+.nf
+\fBvoid\fR \fBvc_pow_\fR(\fBint *\fR\fIn\fR, \fBfloat complex * restrict\fR \fIz\fR,
+ \fBint *\fR\fIstridez\fR, \fBfloat complex * restrict\fR \fIw\fR, \fBint *\fR\fIstridew\fR,
+ \fBfloat complex * restrict\fR \fIu\fR, \fBint *\fR\fIstrideu\fR,
+ \fBfloat *\fR \fItmp\fR);
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+These functions evaluate the complex function \fIz\fR^\fIw\fR for an entire
+vector of values at once. The first parameter specifies the number of values to
+compute. Subsequent parameters specify the argument and result vectors. Each
+vector is described by a pointer to the first element and a stride, which is
+the increment between successive elements. The last argument is a pointer to
+scratch storage; this storage must be large enough to hold 3 * *\fIn\fR
+consecutive values of the real type corresponding to the complex type of the
+argument and result.
+.sp
+.LP
+Specifically, \fBvz_pow_\fR(\fIn\fR, \fIz\fR, \fIsz\fR, \fIw\fR, \fIsw\fR,
+\fIu\fR, \fIsu\fR, \fItmp\fR) computes \fIu\fR[\fIi\fR * *\fIsu\fR] =
+(\fIz\fR[\fIi\fR * *\fIsz\fR])^(\fIw\fR[\fIi\fR * *\fIsw\fR]) for each \fIi\fR
+= 0, 1, ..., *\fIn\fR - 1. The \fBvc_pow_()\fR function performs the same
+computation for single precision data.
+.sp
+.LP
+These functions are not guaranteed to deliver results that are identical to the
+results of the \fBcpow\fR(3M) functions given the same arguments.
+.SH USAGE
+.sp
+.LP
+The element count *\fIn\fR must be greater than zero. The strides for the
+argument and result arrays can be arbitrary integers, but the arrays themselves
+must not be the same or overlap. A zero stride effectively collapses an entire
+vector into a single element. A negative stride causes a vector to be accessed
+in descending memory order, but note that the corresponding pointer must still
+point to the first element of the vector to be used; if the stride is negative,
+this will be the highest-addressed element in memory. This convention differs
+from the Level 1 BLAS, in which array parameters always refer to the
+lowest-addressed element in memory even when negative increments are used.
+.sp
+.LP
+These functions assume that the default round-to-nearest rounding direction
+mode is in effect. On x86, these functions also assume that the default
+round-to-64-bit rounding precision mode is in effect. The result of calling a
+vector function with a non-default rounding mode in effect is undefined.
+.sp
+.LP
+Unlike the c99 \fBcpow\fR(3M) functions, the vector complex exponential
+functions make no attempt to handle special cases and exceptions; they simply
+use textbook formulas to compute a complex exponential in terms of real
+elementary functions. As a result, these functions can raise different
+exceptions and/or deliver different results from \fBcpow()\fR.
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilityCommitted
+_
+MT-LevelMT-Safe
+.TE
+
+.SH SEE ALSO
+.sp
+.LP
+\fBcpow\fR(3M), \fBattributes\fR(5)