问题标签 [sqr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1213 浏览

report - SQR 字符串变量

我有一个字符串变量,它从查询中获得大约 1184 个 var,但它在 CSV 格式的 SQR 报告中仅显示 263 个字符。请告诉如何在我的变量中获取整个字符。请帮助我是 SQR 报告的新手

0 投票
1 回答
2175 浏览

oracle - SQR 5543 错误。在 sqrw 中报告参数

我正在尝试运行 SQRW 并要求报告参数。

我输入了 -ZIF"path to my pssqr.ini" (不带引号)

一旦我点击 OK 我得到错误 (SQR 5543) 在 [Environment:Oracle] 部分的 SQR.INI 文件中为 ORACE_DLL 条目指定 Oracle DLL 名称,例如

ORACLE_DLL=orant71.dll

我尝试将 oracle dll bin 路径添加到我的搜索路径中,并且我还尝试将 ORACLE_DLL= 添加到 pssqr.ini 文件中。两者都不起作用,但我什至不确定我应该得到哪个 dll 文件。我的 oracle bin 目录中没有类似 orant71.dll 的东西。

如果我有 oracle 11,我应该使用哪个 dll 文件?

关于我能做什么或有什么问题,还有其他建议吗?

0 投票
1 回答
1116 浏览

oracle - Oracle SQR datediff,四舍五入秒,然后键入

在 Oracle SQR 中(请,我知道在 SQL 中如何,我在询问 SQR 语法),我如何: - 确定变量的“类型”?我找不到任何“类型”函数 - datediff() 返回的数据类型是什么?- 最后,我如何将返回的金额四舍五入到整秒 datediff($date1, $date2,'MINUTE')

提前致谢。搜索这个一直是个问题,因为我得到了大量的 SQL 语句和平方根函数的结果。

0 投票
1 回答
2566 浏览

report - 删除 sqr 中的回车

我有一个文本列,可能包含也可能不包含回车符。当它们确实包含它们时,它会抛出我的报告并添加额外的一行。有没有办法删除回车并用空格替换它们?

0 投票
4 回答
135 浏览

java - 为什么 $4945932$ 的平方是负数?

我声明了一个整数 int i = 4945932; 它的平方是一些负随机数。这怎么可能?我究竟做错了什么?请帮助。在此先感谢。

0 投票
3 回答
1685 浏览

peoplesoft - using UNIX command to zip/compress a file with PASSWORD in SQR

I want to use unix command in SQR to zip/ compress a file with password and after that verifying password option

0 投票
1 回答
656 浏览

linux - 如何从不同的起点在 csv 文件的多行上添加特定值?

我使用 SQR 创建了一个以逗号分隔的 .csv 文件,其中包含多行数据。每行有四组不同的数据。一组是货币价值。我正在尝试使用 Linux 脚本从 .csv 文件中提取每行的货币价值,并获取所有货币价值数据行的总货币价值。我的问题是,每个货币价值的起点根据在货币金额之前写入的信息而有所不同。此外,每个货币金额的终点也各不相同。我不知道如何解决这个问题。我需要帮助编写一些代码,这些代码只能提取每行的货币值并将其与下一行相加,依此类推。下面是 .csv 文件的外观示例。第一列是业务单位,第二列是项目id,第三列是货币价值,四是项目审批人姓名。你能帮忙吗?

0 投票
1 回答
3587 浏览

csv - 在 CSV 中同时处理逗号和双引号

我正在用 SQR 编写一份报告,它会生成一个 CSV 输出文件。在测试时,我遇到了一个实例,其中在我的一个字段中使用了以下字符串:

桌子 - 210" X 60" X 29",橡木,

我目前在字符串周围有双引号。当我使用这种方法时,产生的输出是这样的:

第 1 列 |第 2 列|第 3 列

桌子 - 210 X 60" X 29" | 橡木 | ,

显然,整行应该适合第一列。

我知道可以使用其他分隔符,但更愿意保留逗号分隔符。有谁知道解决这个问题的方法?

这是当前代码的简化版本:

0 投票
2 回答
5316 浏览

c++ - 快速大数平方计算

为了加快我的 bignum divisons,我需要加快 bigints 的操作y = x^2,这些 bigints 表示为无符号 DWORD 的动态数组。要清楚:

  • 其中 n+1 是使用的 DWORD 数
  • 所以数字的价值x = x[0]+x[1]<<32 + ... x[N]<<32*(n)

问题是:如何在y = x^2不损失精度的情况下尽可能快地计算? - 使用C++和整数运算(带进位的 32 位)。

我目前的方法是应用乘法y = x*x并避免多次乘法。

例如:

为简单起见,让我重写它:

其中 index 表示数组内的地址,因此:

仔细一看,很明显几乎所有都xi*xj出现了两次(不是第一次和最后一次),这意味着N*N乘法可以用(N+1)*(N/2)乘法代替。PS32bit*32bit = 64bit所以每个mul+add操作的结果都被处理为64+1 bit.

有没有更好的方法来快速计算?我在搜索过程中发现的只是 sqrts 算法,而不是 sqr ......

快速平方

!!!请注意,我的代码中的所有数字都首先是 MSW,... 不像上面的测试那样(为了简化方程式,首先有 LSW,否则将是索引混乱)。

当前的功能 fsqr 实现

Karatsuba 乘法的使用

(感谢卡尔皮斯)

我实现了 Karatsuba 乘法,但结果比使用简单O(N^2)乘法要慢得多,可能是因为我看不到任何方法可以避免的可怕递归。它的权衡必须是非常大的数字(大于数百位数)......但即便如此,也有很多内存传输。有没有办法避免递归调用(非递归变体,......几乎所有递归算法都可以这样做)。尽管如此,我还是会尝试调整一下,看看会发生什么(避免规范化等......,这也可能是代码中的一些愚蠢的错误)。无论如何,在解决了 Karatsuba 的情况后,x*x性能并没有太大的提升。

优化的 Karatsuba 乘法

性能测试y = x^2 looped 1000x times, 0.9 < x < 1 ~ 32*98 bits

在对 Karatsuba 进行优化后,代码比以前快了很多。不过,对于较小的数字,它略低于我O(N^2)乘法的一半速度。对于更大的数字,布斯乘法的复杂性给出的比率会更快。乘法的阈值约为 32*98 位,sqr 的阈值约为 32*389 位,因此如果输入位的总和超过此阈值,则 Karatsuba 乘法将用于加速乘法,sqr 也类似。

顺便说一句,优化包括:

  • 通过太大的递归参数最小化堆垃圾
  • 取而代之的是避免使用任何带有进位的 bignum 算术 (+,-) 32 位 ALU。
  • 忽略0*yor x*0or0*0情况
  • 将输入数字大小重新格式化x,y为 2 的幂以避免重新分配
  • 实现模乘以z1 = (x0 + x1)*(y0 + y1)最小化递归

将 Schönhage-Strassen 乘法修改为 sqr 实现

我已经测试了使用FFTNTT变换来加速 sqr 计算。结果如下:

  1. 快速傅里叶变换

    失去准确性,因此需要高精度的复数。这实际上大大减慢了速度,因此不存在加速。结果不精确(可能错误地四舍五入)所以FFT不可用(现在)

  2. NTT

    NTT是有限域DFT,因此不会发生精度损失。它需要对无符号整数进行模运算:modpow, modmul, modaddmodsub.

    我使用DWORD(32 位无符号整数)。由于溢出问题, NTT输入/输出向量大小受到限制!!!对于 32 位模块化算术,N仅限于(2^32)/(max(input[])^2)因此bigint必须划分为更小的块(我使用的处理的BYTES最大大小是bigint

    sqr仅用于1xNTT + 1xINTT而不是2xNTT + 1xINTT用于乘法,但NTT的使用速度太慢,并且阈值大小太大而无法在我的实现中实际使用(formul和 for sqr)。

    有可能甚至超过溢出限制,因此应该使用 64 位模运算,这可能会进一步减慢速度。所以NTT对我来说也无法使用。

一些测量:

我的实现:

结论

对于较小的数字,这是我快速sqr方法的最佳选择,并且在阈值Karatsuba乘法之后更好。但我仍然认为应该有一些我们忽略的微不足道的东西。还有其他想法吗?

NTT 优化

经过大规模优化(主要是NTT):堆栈溢出问题模块化算法和 NTT(有限域 DFT)优化

一些值发生了变化:

所以现在NTT乘法在大约 1500*32 位阈值之后终于快于Karatsuba 。

发现了一些测量和错误

我发现我的Karatsuba(上/下)流过bignum的每个段的LSB 。DWORD当我研究后,我会更新代码......

此外,在进一步NTT优化之后,阈值发生了变化,因此对于NTT sqr它是310*32 bits = 9920 bits操作,而对于NTT mul它是1396*32 bits = 44672 bits结果操作数位的总和)。

感谢@greybeard 修复了 Karatsuba 代码

我的arbnum号码表示:

  • dat[siz]是螳螂。LSDW 表示最低有效 DWORD。
  • exp是 MSB 的指数dat[0]
  • 第一个非零位出现在尾数中!!!

    /li>
0 投票
1 回答
445 浏览

excel - Sqr 函数停止 vba 代码(?!)

抱歉我的愚蠢问题,但我无法理解,因为它是如此简单。

当我尝试以下代码时,Excel 2010 停止运行:

这个潜艇什么都不做,只是花时间。那么为什么excel没有响应呢?

VBA不能这么弱。我失去了什么?

谢谢。