From a63a036803b050e7011308d31cb24c951b73b965 Mon Sep 17 00:00:00 2001 From: coco <1228759711@qq.com> Date: Sat, 25 Nov 2023 03:37:20 +0800 Subject: [PATCH 01/14] add householder_product_cn doc --- docs/api/paddle/linalg/Overview_cn.rst | 2 +- .../paddle/linalg/householder_product_cn.rst | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 docs/api/paddle/linalg/householder_product_cn.rst diff --git a/docs/api/paddle/linalg/Overview_cn.rst b/docs/api/paddle/linalg/Overview_cn.rst index 3b34686cc0a..e9e9996a568 100644 --- a/docs/api/paddle/linalg/Overview_cn.rst +++ b/docs/api/paddle/linalg/Overview_cn.rst @@ -62,7 +62,7 @@ paddle.linalg 目录下包含飞桨框架支持的线性代数相关 API。具 " :ref:`paddle.linalg.qr ` ", "计算矩阵的正交三角分解(也称 QR 分解)" " :ref:`paddle.linalg.lu ` ", "计算矩阵的 LU 分解" " :ref:`paddle.linalg.lu_unpack ` ", "对矩阵的 LU 分解结果进行展开得到各单独矩阵" - + " :ref:`paddle.linalg.householder_product ` ", "计算 Householder 矩阵乘积的前 n 列(输入矩阵为 `[*,m,n]` )" .. _about_solvers: diff --git a/docs/api/paddle/linalg/householder_product_cn.rst b/docs/api/paddle/linalg/householder_product_cn.rst new file mode 100644 index 00000000000..74b44a45bfe --- /dev/null +++ b/docs/api/paddle/linalg/householder_product_cn.rst @@ -0,0 +1,35 @@ +.. _cn_api_paddle_linalg_householder_product: + +householder_product +------------------------------- + +.. py:function:: paddle.linalg.householder_product(x, tau, name=None) + + +计算 Householder 矩阵乘积的前 n 列(输入矩阵为 `[*,m,n]` )。 + + +该函数可以从矩阵 `x` (m x n) 得到向量 :math:`\omega_{i}`,其中前 `i-1` 个元素为零,第 i 个元素为 `1`,其余元素元素来自 `x` 的第 i 列。 +并且使用向量 `tau` 可以计算 Householder 矩阵乘积的前 n 列。 + +.. math:: + H_i = I_m - \tau_i \omega_i \omega_i^H + + +参数 +:::::::::::: + + - **x** (Tensor): 形状为 `(*, m, n)` 的张量,其中 * 是零个或多个批量维度。 + - **tau** (Tensor): 形状为 `(*, k)` 的张量,其中 * 是零个或多个批量维度。 + - **name** (str, 可选): 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + + +返回 +:::::::::::: + + - Tensor, dtype与输入张量相同, QR分解中的Q, :MATH:`out = q = H_1H_2H_3 ... H_K` + +代码示例 +:::::::::: + +COPY-FROM: paddle.linalg.householder_product From 7cba614da2ed2dcccf4be165683db3be982c7a95 Mon Sep 17 00:00:00 2001 From: coco <1228759711@qq.com> Date: Fri, 1 Dec 2023 16:45:28 +0800 Subject: [PATCH 02/14] doc style --- .../paddle/linalg/householder_product_cn.rst | 70 +++++++++---------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/docs/api/paddle/linalg/householder_product_cn.rst b/docs/api/paddle/linalg/householder_product_cn.rst index 74b44a45bfe..7d4bc6ac0c0 100644 --- a/docs/api/paddle/linalg/householder_product_cn.rst +++ b/docs/api/paddle/linalg/householder_product_cn.rst @@ -1,35 +1,35 @@ -.. _cn_api_paddle_linalg_householder_product: - -householder_product -------------------------------- - -.. py:function:: paddle.linalg.householder_product(x, tau, name=None) - - -计算 Householder 矩阵乘积的前 n 列(输入矩阵为 `[*,m,n]` )。 - - -该函数可以从矩阵 `x` (m x n) 得到向量 :math:`\omega_{i}`,其中前 `i-1` 个元素为零,第 i 个元素为 `1`,其余元素元素来自 `x` 的第 i 列。 -并且使用向量 `tau` 可以计算 Householder 矩阵乘积的前 n 列。 - -.. math:: - H_i = I_m - \tau_i \omega_i \omega_i^H - - -参数 -:::::::::::: - - - **x** (Tensor): 形状为 `(*, m, n)` 的张量,其中 * 是零个或多个批量维度。 - - **tau** (Tensor): 形状为 `(*, k)` 的张量,其中 * 是零个或多个批量维度。 - - **name** (str, 可选): 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 - - -返回 -:::::::::::: - - - Tensor, dtype与输入张量相同, QR分解中的Q, :MATH:`out = q = H_1H_2H_3 ... H_K` - -代码示例 -:::::::::: - -COPY-FROM: paddle.linalg.householder_product +.. _cn_api_paddle_linalg_householder_product: + +householder_product +------------------------------- + +.. py:function:: paddle.linalg.householder_product(x, tau, name=None) + + +计算 Householder 矩阵乘积的前 n 列(输入矩阵为 `[*,m,n]` )。 + + +该函数可以从矩阵 `x` (m x n) 得到向量 :math:`\omega_{i}`,其中前 `i-1` 个元素为零,第 i 个元素为 `1`,其余元素元素来自 `x` 的第 i 列。 +并且使用向量 `tau` 可以计算 Householder 矩阵乘积的前 n 列。 + +.. math:: + H_i = I_m - \tau_i \omega_i \omega_i^H + + +参数 +:::::::::::: + + - **x** (Tensor): 形状为 `(*, m, n)` 的张量,其中 * 是零个或多个批量维度。 + - **tau** (Tensor): 形状为 `(*, k)` 的张量,其中 * 是零个或多个批量维度。 + - **name** (str, 可选): 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + + +返回 +:::::::::::: + + - Tensor, dtype 与输入张量相同, QR 分解中的 Q, :MATH:`out = q = H_1H_2H_3 ... H_K` + +代码示例 +:::::::::: + +COPY-FROM: paddle.linalg.householder_product From 14e33d42aed494aa2f4f60952b51f327e72218dd Mon Sep 17 00:00:00 2001 From: coco <1228759711@qq.com> Date: Mon, 18 Dec 2023 14:50:32 +0800 Subject: [PATCH 03/14] add bitwise_shift zh doc --- docs/api/paddle/Overview_cn.rst | 2 ++ docs/api/paddle/bitwise_left_shift_cn.rst | 34 ++++++++++++++++++++++ docs/api/paddle/bitwise_right_shift_cn.rst | 33 +++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 docs/api/paddle/bitwise_left_shift_cn.rst create mode 100644 docs/api/paddle/bitwise_right_shift_cn.rst diff --git a/docs/api/paddle/Overview_cn.rst b/docs/api/paddle/Overview_cn.rst index 8737c32d5c4..171bf526918 100755 --- a/docs/api/paddle/Overview_cn.rst +++ b/docs/api/paddle/Overview_cn.rst @@ -87,6 +87,8 @@ tensor 数学操作 " :ref:`paddle.bitwise_not ` ", "逐元素的对 X Tensor 进行按位取反运算" " :ref:`paddle.bitwise_or ` ", "逐元素的对 X 和 Y 进行按位或运算" " :ref:`paddle.bitwise_xor ` ", "逐元素的对 X 和 Y 进行按位异或运算" + " :ref:`paddle.bitwise_left_shift ` ", "逐元素的对 X 和 Y 进行按位算术(或逻辑)左移" + " :ref:`paddle.bitwise_right_shift ` ", "逐元素的对 X 和 Y 进行按位算术(或逻辑)右移" " :ref:`paddle.logsumexp ` ", "沿着 axis 计算 x 的以 e 为底的指数的和的自然对数" " :ref:`paddle.max ` ", "对指定维度上的 Tensor 元素求最大值运算" " :ref:`paddle.amax ` ", "对指定维度上的 Tensor 元素求最大值运算" diff --git a/docs/api/paddle/bitwise_left_shift_cn.rst b/docs/api/paddle/bitwise_left_shift_cn.rst new file mode 100644 index 00000000000..8b2010123ef --- /dev/null +++ b/docs/api/paddle/bitwise_left_shift_cn.rst @@ -0,0 +1,34 @@ +.. _cn_api_paddle_bitwise_left_shift: + +bitwise_left_shift +------------------------------- + +.. py:function:: paddle.bitwise_left_shift(x, y, is_arithmetic=True, out=None, name=None) + +对 Tensor ``x`` 和 ``y`` 逐元素进行 ``按位算术(或逻辑)左移`` 运算。 + +.. math:: + Out = X \ll Y + +.. note:: + ``paddle.bitwise_left_shift`` 遵守 broadcasting,如您想了解更多,请参见 `Tensor 介绍`_ . + + .. _Tensor 介绍: ../../guides/beginner/tensor_cn.html#id7 +参数 +:::::::::::: + + - **x** (Tensor)- 输入的 N-D `Tensor`,数据类型为:uint8,int8,int16,int32,int64。 + - **y** (Tensor)- 输入的 N-D `Tensor`,数据类型为:uint8,int8,int16,int32,int64。 + - **is_arithmetic** (bool) - 用于表明是否执行算术位移,True 表示算术位移,False 表示逻辑位移。默认值为 True,表示算术位移。 + - **out** (Tensor,可选)- 输出的结果 `Tensor`,是与输入数据类型相同的 N-D `Tensor`。默认值为 None,此时将创建新的 Tensor 来保存输出结果。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + + +返回 +:::::::::::: + ``按位算术(逻辑)左移`` 运算后的结果 ``Tensor``,数据类型与 ``x`` 相同。 + +代码示例 +:::::::::::: + +COPY-FROM: paddle.bitwise_left_shift diff --git a/docs/api/paddle/bitwise_right_shift_cn.rst b/docs/api/paddle/bitwise_right_shift_cn.rst new file mode 100644 index 00000000000..3113c97988c --- /dev/null +++ b/docs/api/paddle/bitwise_right_shift_cn.rst @@ -0,0 +1,33 @@ +.. _cn_api_paddle_bitwise_right_shift: + +bitwise_right_shift +------------------------------- + +.. py:function:: paddle.bitwise_right_shift(x, y, is_arithmetic=True, out=None, name=None) + +对 Tensor ``x`` 和 ``y`` 逐元素进行 ``按位算术(或逻辑)右移`` 运算。 + +.. math:: + Out = X \gg Y + +.. note:: + ``paddle.bitwise_right_shift`` 遵守 broadcasting,如您想了解更多,请参见 `Tensor 介绍`_ . + + .. _Tensor 介绍: ../../guides/beginner/tensor_cn.html#id7 +参数 +:::::::::::: + + - **x** (Tensor)- 输入的 N-D `Tensor`,数据类型为:uint8,int8,int16,int32,int64。 + - **y** (Tensor)- 输入的 N-D `Tensor`,数据类型为:uint8,int8,int16,int32,int64。 + - **is_arithmetic** (bool) - 用于表明是否执行算术位移,True 表示算术位移,False 表示逻辑位移。默认值为 True,表示算术位移。 + - **out** (Tensor,可选)- 输出的结果 `Tensor`,是与输入数据类型相同的 N-D `Tensor`。默认值为 None,此时将创建新的 Tensor 来保存输出结果。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + +返回 +:::::::::::: + ``按位算术(逻辑)右移`` 运算后的结果 ``Tensor``,数据类型与 ``x`` 相同。 + +代码示例 +:::::::::::: + +COPY-FROM: paddle.bitwise_right_shift From 282a33e6bd9856e7aefdcb1dd2a8c78bdeff3a33 Mon Sep 17 00:00:00 2001 From: coco <69197635+cocoshe@users.noreply.github.com> Date: Mon, 18 Dec 2023 15:00:32 +0800 Subject: [PATCH 04/14] Update Overview_cn.rst --- docs/api/paddle/linalg/Overview_cn.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/api/paddle/linalg/Overview_cn.rst b/docs/api/paddle/linalg/Overview_cn.rst index e9e9996a568..68f7c156c41 100644 --- a/docs/api/paddle/linalg/Overview_cn.rst +++ b/docs/api/paddle/linalg/Overview_cn.rst @@ -62,7 +62,6 @@ paddle.linalg 目录下包含飞桨框架支持的线性代数相关 API。具 " :ref:`paddle.linalg.qr ` ", "计算矩阵的正交三角分解(也称 QR 分解)" " :ref:`paddle.linalg.lu ` ", "计算矩阵的 LU 分解" " :ref:`paddle.linalg.lu_unpack ` ", "对矩阵的 LU 分解结果进行展开得到各单独矩阵" - " :ref:`paddle.linalg.householder_product ` ", "计算 Householder 矩阵乘积的前 n 列(输入矩阵为 `[*,m,n]` )" .. _about_solvers: From 92a7cefbdc06b83831b7133a4d42a12dae116369 Mon Sep 17 00:00:00 2001 From: coco <69197635+cocoshe@users.noreply.github.com> Date: Mon, 18 Dec 2023 15:01:01 +0800 Subject: [PATCH 05/14] Update Overview_cn.rst --- docs/api/paddle/linalg/Overview_cn.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/api/paddle/linalg/Overview_cn.rst b/docs/api/paddle/linalg/Overview_cn.rst index 68f7c156c41..3b34686cc0a 100644 --- a/docs/api/paddle/linalg/Overview_cn.rst +++ b/docs/api/paddle/linalg/Overview_cn.rst @@ -63,6 +63,7 @@ paddle.linalg 目录下包含飞桨框架支持的线性代数相关 API。具 " :ref:`paddle.linalg.lu ` ", "计算矩阵的 LU 分解" " :ref:`paddle.linalg.lu_unpack ` ", "对矩阵的 LU 分解结果进行展开得到各单独矩阵" + .. _about_solvers: 线性方程求解相关 API From 05044c87b9c4945388cdd249760a762868ebce3b Mon Sep 17 00:00:00 2001 From: coco <69197635+cocoshe@users.noreply.github.com> Date: Mon, 18 Dec 2023 15:01:16 +0800 Subject: [PATCH 06/14] Delete docs/api/paddle/linalg/householder_product_cn.rst --- .../paddle/linalg/householder_product_cn.rst | 35 ------------------- 1 file changed, 35 deletions(-) delete mode 100644 docs/api/paddle/linalg/householder_product_cn.rst diff --git a/docs/api/paddle/linalg/householder_product_cn.rst b/docs/api/paddle/linalg/householder_product_cn.rst deleted file mode 100644 index 7d4bc6ac0c0..00000000000 --- a/docs/api/paddle/linalg/householder_product_cn.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. _cn_api_paddle_linalg_householder_product: - -householder_product -------------------------------- - -.. py:function:: paddle.linalg.householder_product(x, tau, name=None) - - -计算 Householder 矩阵乘积的前 n 列(输入矩阵为 `[*,m,n]` )。 - - -该函数可以从矩阵 `x` (m x n) 得到向量 :math:`\omega_{i}`,其中前 `i-1` 个元素为零,第 i 个元素为 `1`,其余元素元素来自 `x` 的第 i 列。 -并且使用向量 `tau` 可以计算 Householder 矩阵乘积的前 n 列。 - -.. math:: - H_i = I_m - \tau_i \omega_i \omega_i^H - - -参数 -:::::::::::: - - - **x** (Tensor): 形状为 `(*, m, n)` 的张量,其中 * 是零个或多个批量维度。 - - **tau** (Tensor): 形状为 `(*, k)` 的张量,其中 * 是零个或多个批量维度。 - - **name** (str, 可选): 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 - - -返回 -:::::::::::: - - - Tensor, dtype 与输入张量相同, QR 分解中的 Q, :MATH:`out = q = H_1H_2H_3 ... H_K` - -代码示例 -:::::::::: - -COPY-FROM: paddle.linalg.householder_product From 559b114e4b25a973272e590ddb8a6c78d087023d Mon Sep 17 00:00:00 2001 From: coco <69197635+cocoshe@users.noreply.github.com> Date: Fri, 22 Dec 2023 02:15:41 +0800 Subject: [PATCH 07/14] add notice for overflow --- docs/api/paddle/bitwise_left_shift_cn.rst | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/docs/api/paddle/bitwise_left_shift_cn.rst b/docs/api/paddle/bitwise_left_shift_cn.rst index 8b2010123ef..319688aee35 100644 --- a/docs/api/paddle/bitwise_left_shift_cn.rst +++ b/docs/api/paddle/bitwise_left_shift_cn.rst @@ -7,6 +7,33 @@ bitwise_left_shift 对 Tensor ``x`` 和 ``y`` 逐元素进行 ``按位算术(或逻辑)左移`` 运算。 ++ 关于**有符号数的符号位**在不同情景下的行为: + 1. 算术左移时,符号位同其他位一样,一起左移,右边补0; + 2. 逻辑左移时,符号位同其他位一样,一起左移,右边补0; + 3. 算术右移时,符号位同其他位一样,一起右移,左边补符号位; + 4. 逻辑右移时,符号位同其他位一样,一起右移,左边补0; + +注意:当有符号数左移发生溢出时,其值不可控,可能会在左移时突然变号,这是因为在左移时,有符号数的符号位同样进行左移,会导致符号位右侧的值不断成为符号位,例如 + +example1: + +int8_t x = -45; // 补码为 1101,0011 表示-45 + +int8_t y = x << 2; //补码为 0100,1100 表示76 + +int8_t z = x << 3; //补码为 1001,1000 表示-104 + +example2: + +int8_t x = -86; // 补码为 1010,1010 表示-86 + +int8_t y = x << 1; //补码为 0101,0100 表示84 + +int8_t z = x << 2; //补码为 1010,1000 表示-88 + + +以上为溢出导致的符号突变。 + .. math:: Out = X \ll Y From 6a0c91ed38014e51bd8c72e5b09c28266e038819 Mon Sep 17 00:00:00 2001 From: coco <69197635+cocoshe@users.noreply.github.com> Date: Wed, 10 Jan 2024 20:08:52 +0800 Subject: [PATCH 08/14] Update docs/api/paddle/bitwise_left_shift_cn.rst Co-authored-by: zachary sun <70642955+sunzhongkai588@users.noreply.github.com> --- docs/api/paddle/bitwise_left_shift_cn.rst | 24 +++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/docs/api/paddle/bitwise_left_shift_cn.rst b/docs/api/paddle/bitwise_left_shift_cn.rst index 319688aee35..e7f096a07b6 100644 --- a/docs/api/paddle/bitwise_left_shift_cn.rst +++ b/docs/api/paddle/bitwise_left_shift_cn.rst @@ -13,26 +13,30 @@ bitwise_left_shift 3. 算术右移时,符号位同其他位一样,一起右移,左边补符号位; 4. 逻辑右移时,符号位同其他位一样,一起右移,左边补0; -注意:当有符号数左移发生溢出时,其值不可控,可能会在左移时突然变号,这是因为在左移时,有符号数的符号位同样进行左移,会导致符号位右侧的值不断成为符号位,例如 +.. note:: + 当有符号数左移发生溢出时,其值不可控,可能会在左移时突然变号,这是因为在左移时,有符号数的符号位同样进行左移,会导致符号位右侧的值不断成为符号位,例如 + + example1: -example1: + .. code-block:: text -int8_t x = -45; // 补码为 1101,0011 表示-45 + int8_t x = -45; // 补码为 1101,0011 表示-45 -int8_t y = x << 2; //补码为 0100,1100 表示76 + int8_t y = x << 2; //补码为 0100,1100 表示76 -int8_t z = x << 3; //补码为 1001,1000 表示-104 + int8_t z = x << 3; //补码为 1001,1000 表示-104 -example2: + example2: -int8_t x = -86; // 补码为 1010,1010 表示-86 + .. code-block:: text -int8_t y = x << 1; //补码为 0101,0100 表示84 + int8_t x = -86; // 补码为 1010,1010 表示-86 -int8_t z = x << 2; //补码为 1010,1000 表示-88 + int8_t y = x << 1; //补码为 0101,0100 表示84 + int8_t z = x << 2; //补码为 1010,1000 表示-88 -以上为溢出导致的符号突变。 + 以上为溢出导致的符号突变。 .. math:: Out = X \ll Y From 1f635a3df2167ded8357342e387292e7d264a7bb Mon Sep 17 00:00:00 2001 From: coco <1228759711@qq.com> Date: Wed, 10 Jan 2024 20:14:49 +0800 Subject: [PATCH 09/14] fix doc example --- docs/api/paddle/bitwise_left_shift_cn.rst | 13 +++++++++++-- docs/api/paddle/bitwise_right_shift_cn.rst | 13 +++++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/docs/api/paddle/bitwise_left_shift_cn.rst b/docs/api/paddle/bitwise_left_shift_cn.rst index 319688aee35..5c53e35f206 100644 --- a/docs/api/paddle/bitwise_left_shift_cn.rst +++ b/docs/api/paddle/bitwise_left_shift_cn.rst @@ -55,7 +55,16 @@ int8_t z = x << 2; //补码为 1010,1000 表示-88 :::::::::::: ``按位算术(逻辑)左移`` 运算后的结果 ``Tensor``,数据类型与 ``x`` 相同。 -代码示例 +代码示例1 :::::::::::: -COPY-FROM: paddle.bitwise_left_shift +算术左移 + +COPY-FROM: paddle.bitwise_left_shift:bitwise_left_shift_example1 + +代码示例2 +:::::::::::: + +逻辑左移 + +COPY-FROM: paddle.bitwise_left_shift:bitwise_left_shift_example2 \ No newline at end of file diff --git a/docs/api/paddle/bitwise_right_shift_cn.rst b/docs/api/paddle/bitwise_right_shift_cn.rst index 3113c97988c..25e6b664091 100644 --- a/docs/api/paddle/bitwise_right_shift_cn.rst +++ b/docs/api/paddle/bitwise_right_shift_cn.rst @@ -27,7 +27,16 @@ bitwise_right_shift :::::::::::: ``按位算术(逻辑)右移`` 运算后的结果 ``Tensor``,数据类型与 ``x`` 相同。 -代码示例 +代码示例1 :::::::::::: -COPY-FROM: paddle.bitwise_right_shift +算术右移 + +COPY-FROM: paddle.bitwise_right_shift:bitwise_right_shift_example1 + +代码示例2 +:::::::::::: + +逻辑右移 + +COPY-FROM: paddle.bitwise_right_shift:bitwise_right_shift_example2 From 7122f57e744587426f96b9bad25dddafcf777cc5 Mon Sep 17 00:00:00 2001 From: coco <1228759711@qq.com> Date: Wed, 10 Jan 2024 20:25:54 +0800 Subject: [PATCH 10/14] add inplace doc --- docs/api/paddle/bitwise_left_shift__cn.rst | 12 ++++++++++++ docs/api/paddle/bitwise_right_shift__cn.rst | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 docs/api/paddle/bitwise_left_shift__cn.rst create mode 100644 docs/api/paddle/bitwise_right_shift__cn.rst diff --git a/docs/api/paddle/bitwise_left_shift__cn.rst b/docs/api/paddle/bitwise_left_shift__cn.rst new file mode 100644 index 00000000000..aab2a746420 --- /dev/null +++ b/docs/api/paddle/bitwise_left_shift__cn.rst @@ -0,0 +1,12 @@ +.. _cn_api_paddle_bitwise_left_shift_: + +bitwise_left_shift\_ +------------------------------- + +.. py:function:: paddle.bitwise_right_shift_(x, y, is_arithmetic=True, out=None, name=None) + +Inplace 版本的 :ref:`cn_api_paddle_bitwise_left_shift` API,对输入 `x` 采用 Inplace 策略。 + +更多关于 inplace 操作的介绍请参考 `3.1.3 原位(Inplace)操作和非原位操作的区别`_ 了解详情。 + +.. _3.1.3 原位(Inplace)操作和非原位操作的区别: https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/beginner/tensor_cn.html#id3 diff --git a/docs/api/paddle/bitwise_right_shift__cn.rst b/docs/api/paddle/bitwise_right_shift__cn.rst new file mode 100644 index 00000000000..fb74a601446 --- /dev/null +++ b/docs/api/paddle/bitwise_right_shift__cn.rst @@ -0,0 +1,12 @@ +.. _cn_api_paddle_bitwise_right_shift_: + +bitwise_right_shift\_ +------------------------------- + +.. py:function:: paddle.bitwise_right_shift_(x, y, is_arithmetic=True, out=None, name=None) + +Inplace 版本的 :ref:`cn_api_paddle_bitwise_right_shift` API,对输入 `x` 采用 Inplace 策略。 + +更多关于 inplace 操作的介绍请参考 `3.1.3 原位(Inplace)操作和非原位操作的区别`_ 了解详情。 + +.. _3.1.3 原位(Inplace)操作和非原位操作的区别: https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/beginner/tensor_cn.html#id3 From c8d490703f346e013d561d287ed2fc60c295ab97 Mon Sep 17 00:00:00 2001 From: coco <69197635+cocoshe@users.noreply.github.com> Date: Thu, 11 Jan 2024 12:21:48 +0800 Subject: [PATCH 11/14] Update docs/api/paddle/bitwise_left_shift_cn.rst Co-authored-by: zachary sun <70642955+sunzhongkai588@users.noreply.github.com> --- docs/api/paddle/bitwise_left_shift_cn.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/paddle/bitwise_left_shift_cn.rst b/docs/api/paddle/bitwise_left_shift_cn.rst index 2afcbeb36ab..07bd7bbc9e9 100644 --- a/docs/api/paddle/bitwise_left_shift_cn.rst +++ b/docs/api/paddle/bitwise_left_shift_cn.rst @@ -7,7 +7,7 @@ bitwise_left_shift 对 Tensor ``x`` 和 ``y`` 逐元素进行 ``按位算术(或逻辑)左移`` 运算。 -+ 关于**有符号数的符号位**在不同情景下的行为: +关于 **有符号数的符号位** 在不同情景下的行为: 1. 算术左移时,符号位同其他位一样,一起左移,右边补0; 2. 逻辑左移时,符号位同其他位一样,一起左移,右边补0; 3. 算术右移时,符号位同其他位一样,一起右移,左边补符号位; From bf8f2020bd185310cf81c1d73040b5a47d62ef34 Mon Sep 17 00:00:00 2001 From: coco <1228759711@qq.com> Date: Thu, 11 Jan 2024 12:23:42 +0800 Subject: [PATCH 12/14] add inplace --- docs/api/paddle/Overview_cn.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/api/paddle/Overview_cn.rst b/docs/api/paddle/Overview_cn.rst index 171bf526918..8f95b9f3739 100755 --- a/docs/api/paddle/Overview_cn.rst +++ b/docs/api/paddle/Overview_cn.rst @@ -189,6 +189,8 @@ tensor 数学操作原位(inplace)版本 " :ref:`paddle.multigammaln_ ` ", "Inplace 版本的 multigammaln API,对输入 x 采用 Inplace 策略" " :ref:`paddle.masked_fill_ ` ", "Inplace 版本的 masked_fill API,对输入 x 采用 Inplace 策略" " :ref:`paddle.index_fill_ ` ", "Inplace 版本的 index_fill API,对输入 x 采用 Inplace 策略" + " :ref:`paddle.bitwise_left_shift_ ` ", "Inplace 版本的 bitwise_left_shift API,对输入 x 采用 Inplace 策略" + " :ref:`paddle.bitwise_right_shift_ ` ", "Inplace 版本的 bitwise_right_shift API,对输入 x 采用 Inplace 策略" .. _tensor_logic: From adcfc819873f279f4bc61b08e8f9842290cad971 Mon Sep 17 00:00:00 2001 From: coco <1228759711@qq.com> Date: Thu, 11 Jan 2024 12:27:11 +0800 Subject: [PATCH 13/14] docstyle --- docs/api/paddle/bitwise_left_shift_cn.rst | 16 ++++++++-------- docs/api/paddle/bitwise_right_shift_cn.rst | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/api/paddle/bitwise_left_shift_cn.rst b/docs/api/paddle/bitwise_left_shift_cn.rst index 07bd7bbc9e9..8ecb9b50b17 100644 --- a/docs/api/paddle/bitwise_left_shift_cn.rst +++ b/docs/api/paddle/bitwise_left_shift_cn.rst @@ -8,10 +8,10 @@ bitwise_left_shift 对 Tensor ``x`` 和 ``y`` 逐元素进行 ``按位算术(或逻辑)左移`` 运算。 关于 **有符号数的符号位** 在不同情景下的行为: - 1. 算术左移时,符号位同其他位一样,一起左移,右边补0; - 2. 逻辑左移时,符号位同其他位一样,一起左移,右边补0; + 1. 算术左移时,符号位同其他位一样,一起左移,右边补 0; + 2. 逻辑左移时,符号位同其他位一样,一起左移,右边补 0; 3. 算术右移时,符号位同其他位一样,一起右移,左边补符号位; - 4. 逻辑右移时,符号位同其他位一样,一起右移,左边补0; + 4. 逻辑右移时,符号位同其他位一样,一起右移,左边补 0; .. note:: 当有符号数左移发生溢出时,其值不可控,可能会在左移时突然变号,这是因为在左移时,有符号数的符号位同样进行左移,会导致符号位右侧的值不断成为符号位,例如 @@ -22,7 +22,7 @@ bitwise_left_shift int8_t x = -45; // 补码为 1101,0011 表示-45 - int8_t y = x << 2; //补码为 0100,1100 表示76 + int8_t y = x << 2; //补码为 0100,1100 表示 76 int8_t z = x << 3; //补码为 1001,1000 表示-104 @@ -32,7 +32,7 @@ bitwise_left_shift int8_t x = -86; // 补码为 1010,1010 表示-86 - int8_t y = x << 1; //补码为 0101,0100 表示84 + int8_t y = x << 1; //补码为 0101,0100 表示 84 int8_t z = x << 2; //补码为 1010,1000 表示-88 @@ -59,16 +59,16 @@ bitwise_left_shift :::::::::::: ``按位算术(逻辑)左移`` 运算后的结果 ``Tensor``,数据类型与 ``x`` 相同。 -代码示例1 +代码示例 1 :::::::::::: 算术左移 COPY-FROM: paddle.bitwise_left_shift:bitwise_left_shift_example1 -代码示例2 +代码示例 2 :::::::::::: 逻辑左移 -COPY-FROM: paddle.bitwise_left_shift:bitwise_left_shift_example2 \ No newline at end of file +COPY-FROM: paddle.bitwise_left_shift:bitwise_left_shift_example2 diff --git a/docs/api/paddle/bitwise_right_shift_cn.rst b/docs/api/paddle/bitwise_right_shift_cn.rst index 25e6b664091..5ae0c9c1e64 100644 --- a/docs/api/paddle/bitwise_right_shift_cn.rst +++ b/docs/api/paddle/bitwise_right_shift_cn.rst @@ -27,14 +27,14 @@ bitwise_right_shift :::::::::::: ``按位算术(逻辑)右移`` 运算后的结果 ``Tensor``,数据类型与 ``x`` 相同。 -代码示例1 +代码示例 1 :::::::::::: 算术右移 COPY-FROM: paddle.bitwise_right_shift:bitwise_right_shift_example1 -代码示例2 +代码示例 2 :::::::::::: 逻辑右移 From 4656a33f46388c90587915a91a45dbca96330f69 Mon Sep 17 00:00:00 2001 From: coco <69197635+cocoshe@users.noreply.github.com> Date: Thu, 11 Jan 2024 21:18:07 +0800 Subject: [PATCH 14/14] Update docs/api/paddle/bitwise_left_shift__cn.rst Co-authored-by: zachary sun <70642955+sunzhongkai588@users.noreply.github.com> --- docs/api/paddle/bitwise_left_shift__cn.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/paddle/bitwise_left_shift__cn.rst b/docs/api/paddle/bitwise_left_shift__cn.rst index aab2a746420..d450a21143a 100644 --- a/docs/api/paddle/bitwise_left_shift__cn.rst +++ b/docs/api/paddle/bitwise_left_shift__cn.rst @@ -3,7 +3,7 @@ bitwise_left_shift\_ ------------------------------- -.. py:function:: paddle.bitwise_right_shift_(x, y, is_arithmetic=True, out=None, name=None) +.. py:function:: paddle.bitwise_left_shift_(x, y, is_arithmetic=True, out=None, name=None) Inplace 版本的 :ref:`cn_api_paddle_bitwise_left_shift` API,对输入 `x` 采用 Inplace 策略。