问题标签 [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.
report - SQR 字符串变量
我有一个字符串变量,它从查询中获得大约 1184 个 var,但它在 CSV 格式的 SQR 报告中仅显示 263 个字符。请告诉如何在我的变量中获取整个字符。请帮助我是 SQR 报告的新手
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 文件?
关于我能做什么或有什么问题,还有其他建议吗?
oracle - Oracle SQR datediff,四舍五入秒,然后键入
在 Oracle SQR 中(请,我知道在 SQL 中如何,我在询问 SQR 语法),我如何: - 确定变量的“类型”?我找不到任何“类型”函数 - datediff() 返回的数据类型是什么?- 最后,我如何将返回的金额四舍五入到整秒
datediff($date1, $date2,'MINUTE')
?
提前致谢。搜索这个一直是个问题,因为我得到了大量的 SQL 语句和平方根函数的结果。
report - 删除 sqr 中的回车
我有一个文本列,可能包含也可能不包含回车符。当它们确实包含它们时,它会抛出我的报告并添加额外的一行。有没有办法删除回车并用空格替换它们?
java - 为什么 $4945932$ 的平方是负数?
我声明了一个整数 int i = 4945932; 它的平方是一些负随机数。这怎么可能?我究竟做错了什么?请帮助。在此先感谢。
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
linux - 如何从不同的起点在 csv 文件的多行上添加特定值?
我使用 SQR 创建了一个以逗号分隔的 .csv 文件,其中包含多行数据。每行有四组不同的数据。一组是货币价值。我正在尝试使用 Linux 脚本从 .csv 文件中提取每行的货币价值,并获取所有货币价值数据行的总货币价值。我的问题是,每个货币价值的起点根据在货币金额之前写入的信息而有所不同。此外,每个货币金额的终点也各不相同。我不知道如何解决这个问题。我需要帮助编写一些代码,这些代码只能提取每行的货币值并将其与下一行相加,依此类推。下面是 .csv 文件的外观示例。第一列是业务单位,第二列是项目id,第三列是货币价值,四是项目审批人姓名。你能帮忙吗?
csv - 在 CSV 中同时处理逗号和双引号
我正在用 SQR 编写一份报告,它会生成一个 CSV 输出文件。在测试时,我遇到了一个实例,其中在我的一个字段中使用了以下字符串:
桌子 - 210" X 60" X 29",橡木,
我目前在字符串周围有双引号。当我使用这种方法时,产生的输出是这样的:
第 1 列 |第 2 列|第 3 列
桌子 - 210 X 60" X 29" | 橡木 | ,
显然,整行应该适合第一列。
我知道可以使用其他分隔符,但更愿意保留逗号分隔符。有谁知道解决这个问题的方法?
这是当前代码的简化版本:
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*y
orx*0
or0*0
情况 - 将输入数字大小重新格式化
x,y
为 2 的幂以避免重新分配 - 实现模乘以
z1 = (x0 + x1)*(y0 + y1)
最小化递归
将 Schönhage-Strassen 乘法修改为 sqr 实现
我已经测试了使用FFT和NTT变换来加速 sqr 计算。结果如下:
快速傅里叶变换
失去准确性,因此需要高精度的复数。这实际上大大减慢了速度,因此不存在加速。结果不精确(可能错误地四舍五入)所以FFT不可用(现在)
NTT
NTT是有限域DFT,因此不会发生精度损失。它需要对无符号整数进行模运算:
modpow, modmul, modadd
和modsub
.我使用
DWORD
(32 位无符号整数)。由于溢出问题, NTT输入/输出向量大小受到限制!!!对于 32 位模块化算术,N
仅限于(2^32)/(max(input[])^2)
因此bigint
必须划分为更小的块(我使用的处理的BYTES
最大大小是bigint
sqr
仅用于1xNTT + 1xINTT
而不是2xNTT + 1xINTT
用于乘法,但NTT的使用速度太慢,并且阈值大小太大而无法在我的实现中实际使用(formul
和 forsqr
)。有可能甚至超过溢出限制,因此应该使用 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>
excel - Sqr 函数停止 vba 代码(?!)
抱歉我的愚蠢问题,但我无法理解,因为它是如此简单。
当我尝试以下代码时,Excel 2010 停止运行:
这个潜艇什么都不做,只是花时间。那么为什么excel没有响应呢?
VBA不能这么弱。我失去了什么?
谢谢。