如果它们都具有相同的形状,例如两个(n,1)或两个(n,),则两个矢量的元素相乘是没有问题的.但是,如果一个向量具有形状(n,1)而另一个向量具有(n,),则*-operator返回一些有趣的东西.
a = np.ones((3,1))
b = np.ones((3,))
print a * b
Run Code Online (Sandbox Code Playgroud)
得到的nxn矩阵包含A_ {i,j} = a_i*b_j.
我怎样才能实现elementwise乘法的a和b呢?
我有这个C++类,这是一个很复杂的方法compute,我想用"计算内核",一个同一类的方法.我想我会做一些事情
class test {
int classVar_ = 42;
int compute_add(int a, int b)
{
compute(int a, int b, this->add_())
}
int compute_mult(int a, int b)
{
compute(int a, int b, this->mult_())
}
int compute_(int a, int b, "pass in add or multiply as f()")
{
int c=0;
// Some complex loops {
c += f(a,b)
// }
return c;
}
int add_(int a, int b){a+b+classVar_;}
int multiply_(int a, int b){a*b+classVar_;}
...
}
Run Code Online (Sandbox Code Playgroud)
但我不确定我会怎样传递add或传递multiply.这种方法的另一种方法是传递ENUM …
我正在尝试使用libquadmath打印__float128,例如:
quadmath_snprintf(s, sizeof(s), "%.30Qg", f);
Run Code Online (Sandbox Code Playgroud)
有以下三个constaints:
输出必须符合以下生产:
number = [ minus ] int [ frac ] [ exp ]
decimal-point = %x2E ; .
digit1-9 = %x31-39 ; 1-9
e = %x65 / %x45 ; e E
exp = e [ minus / plus ] 1*DIGIT
frac = decimal-point 1*DIGIT
int = zero / ( digit1-9 *DIGIT )
minus = %x2D ; -
plus = %x2B ; +
zero = %x30 ; 0
Run Code Online (Sandbox Code Playgroud)给定任何输入__float128"i"已经打印到匹配上述生产"s"的字符串,然后"s"被扫描回到__float128"j" - "i"必须与"j"按位相同 - 即不应丢失任何信息.对于至少某些值,这是不可能的(NaN,Infinity),这些值的完整列表是什么?
应该没有其他字符串满足上述两个标准,比候选人短.
是否有满足上述要求的quadmath_snprintf格式字符串(尽可能为1,3和2)?如果是这样的话是什么? …
我有一个 SciPy 稀疏矩阵A(比如说 CSR 格式)和一个v匹配长度的向量。
行缩放的最佳方式是什么,即
A执行?vdiag(v) * A
我想解析包含;用于分隔命令的分号的Python代码,并生成用换行替换它们的代码\n.例如,来自
def main():
a = "a;b"; return a
Run Code Online (Sandbox Code Playgroud)
我想生产
def main():
a = "a;b"
return a
Run Code Online (Sandbox Code Playgroud)
任何提示?
我有一个大的numpy数组(dtype=int)和一组数字,我想在该数组中找到,例如,
import numpy as np
values = np.array([1, 2, 3, 1, 2, 4, 5, 6, 3, 2, 1])
searchvals = [3, 1]
# result = [0, 2, 3, 8, 10]
Run Code Online (Sandbox Code Playgroud)
该result阵列不必进行排序.
速度是一个问题,因为这两个values和searchvals可能很大,
for searchval in searchvals:
np.where(values == searchval)[0]
Run Code Online (Sandbox Code Playgroud)
不削减它.
任何提示?
我正在尝试在GCC中使用quadmath库.我有一个复杂的双值我想要转换成相应的四精度复数,__complex128.以下是最小(非)工作示例:
#include <quadmath.h>
#include <complex>
#include <stdio.h>
using namespace std::complex_literals;
int main(){
std::complex<double> x = 1 + 2i;
std::printf("x = %5.5g + %5.5g\n", x.real(), x.imag());
__complex128 y = 2+2i;
y = x;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译此代码时
g++ test.cpp -lquadmath -o test
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
test.cpp:10:6: error: cannot convert 'std::complex<double>' to '__complex128 {aka __complex__ __float128}' in assignment
y = x;
Run Code Online (Sandbox Code Playgroud)
如果我尝试用显式类型转换替换赋值行,
y = (__complex128) x;
Run Code Online (Sandbox Code Playgroud)
我得到了类似的错误
test.cpp:10:21: error: invalid cast from type 'std::complex<double>' to type '__complex128 {aka __complex__ __float128}'
y = …Run Code Online (Sandbox Code Playgroud) 给定两个numpy.array小号a和b,
c = numpy.outer(a, b)
Run Code Online (Sandbox Code Playgroud)
返回一个二维数组c[i, j] == a[i] * b[j].现在,想象a有k尺寸.
c维数k+1在哪里c[..., j] == a * b[j]?另外,让我们b有l尺寸.
c维数k+1在哪里c[..., i1, i2, i3] == a * b[i1, i2, i3]?在启动了一个新的Docker Ubuntu环境后,
docker run -ti ubuntu:17.04
Run Code Online (Sandbox Code Playgroud)
我正在尝试添加PPA
apt-get update
apt-get install -y software-properties-common
apt-add-repository -y ppa:nschloe/vtk7-nightly
Run Code Online (Sandbox Code Playgroud)
然而,这失败了
gpg: key ECD154D280FEB8AC: public key "Launchpad PPA for Nico Schl?mer" imported
gpg: Total number processed: 1
gpg: imported: 1
'ascii' codec can't decode byte 0xc3 in position 229: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
看起来像可怕的ö变形金刚再次袭来.
如何解决这个问题?
众所周知,两个浮点数的精确乘积并不总是浮点数,但误差exact(a*b) - float(a*b)却是。一些精确乘法的代码通过返回两个数字来利用这一点
res = a * b
err = fma(a, b, -res)
Run Code Online (Sandbox Code Playgroud)
这利用了融合乘加指令,该指令(a*b)+c 通过一次舍入返回表达式。
现在,我想对sums做同样的事情,即
res = a + b
err = add3(a, b, -res)
Run Code Online (Sandbox Code Playgroud)
add3应该返回(a+b)+c 具有一次舍入的表达式。
除了这篇文章之外,我找不到add3现实世界中实际存在的提示。
是否有包含以下内容的CPU指令集add3?有语言实现它吗?
floating-point instruction-set floating-accuracy instructions