问题列表 - 第39052页

使用SSE内在函数将4个点产品存储到C中的连续数组中的最有效方法

我正在使用SSE内在函数为英特尔x86 Nehalem微架构优化一些代码.

我的程序的一部分计算4个点产品,并将每个结果添加到阵列的连续块中的先前值.进一步来说,

tmp0 = _mm_dp_ps(A_0m, B_0m, 0xF1);
tmp1 = _mm_dp_ps(A_1m, B_0m, 0xF2);
tmp2 = _mm_dp_ps(A_2m, B_0m, 0xF4);
tmp3 = _mm_dp_ps(A_3m, B_0m, 0xF8);

tmp0 = _mm_add_ps(tmp0, tmp1);
tmp0 = _mm_add_ps(tmp0, tmp2);
tmp0 = _mm_add_ps(tmp0, tmp3);
tmp0 = _mm_add_ps(tmp0, C_0n);

_mm_storeu_ps(C_2, tmp0);
Run Code Online (Sandbox Code Playgroud)

请注意,我通过使用4个临时xmm寄存器来保存每个点积的结果.在每个xmm寄存器中,结果被放入相对于其他临时xmm寄存器的唯一32位,这样最终结果如下所示:

tmp0 = R0-零 - 零

tmp1 =零-R1-零

tmp2 =零 - 零 - 零

tmp3 =零 - 零 - R3

我将每个tmp变量中包含的值组合成一个xmm变量,并将它们与以下说明相加:

tmp0 = _mm_add_ps(tmp0, tmp1);
tmp0 = _mm_add_ps(tmp0, tmp2);
tmp0 = _mm_add_ps(tmp0, tmp3);
Run Code Online (Sandbox Code Playgroud)

最后,我将包含点积的所有4个结果的寄存器添加到数组的连续部分,以便数组的索引以点积递增,就像这样(C_0n是数组中当前要更新的4个值) ; C_2是指向这4个值的地址):

tmp0 = _mm_add_ps(tmp0, …
Run Code Online (Sandbox Code Playgroud)

c sse simd intrinsics dot-product

11
推荐指数
1
解决办法
3178
查看次数

在套接字编程中选择功能

谁能告诉我selectc中套接字编程中函数的使用和应用?

c networking network-programming

16
推荐指数
3
解决办法
2万
查看次数

在Ruby中"知道"类名的类方法?

我希望继承的ruby类通过类方法"知道"它的类名.一个人为的例子可以很好地说明这一点:

class Parent
  def self.whoami
    ??
  end
end

class Child < Parent
  #No code should be needed.
end
Run Code Online (Sandbox Code Playgroud)

所以我应该可以致电:

Parent.whomai
Run Code Online (Sandbox Code Playgroud)

并期望返回"父母",然后我应该可以致电:

Child.whoami
Run Code Online (Sandbox Code Playgroud)

并期望回归"孩子"我觉得在传统语言中这可能是不可能的.但Ruby的元编程模型以前让我感到惊讶.有什么想法吗?提前致谢.

ruby inheritance metaprogramming

14
推荐指数
2
解决办法
9852
查看次数

如何制作没有内容的DIV有宽度?

我正在尝试为DIV添加宽度,但我似乎遇到了问题,因为它没有内容.这是我到目前为止的CSS和HTML,但它不起作用:

CSS

body{
margin:0 auto;
width:1000px
}
ul{
width:800px;
}
ul li{
clear:both;
}
.test1{
width:200px;
float:left;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<body>
  <div id="test">
    <ul>
      <li>
        <div class="test1">width1</div>
        <div class="test1">width2</div>
        <div class="test1">width3</div>
      </li>
      <li>
        <div class="test1"></div>
        <div class="test1">width2</div>
        <div class="test1">width3</div>
      </li>
      <li>
        <div class="test1"></div>
        <div class="test1">width2</div>
        <div class="test1">width3</div>
      </li>
    </ul>
 </div>
Run Code Online (Sandbox Code Playgroud)

html css width css-float

98
推荐指数
6
解决办法
13万
查看次数

我需要一个免费的php bug跟踪器

我的小项目需要一个免费的bug跟踪器.我需要跟踪bug,todo列表和测试用例.有什么建议吗?

php bug-tracking

4
推荐指数
1
解决办法
3565
查看次数

将单元测试作为正在测试的类的朋友有什么问题?

在C++中,我经常将单元测试类作为我正在测试的类的朋友.我这样做是因为我有时觉得需要为私有方法编写单元测试,或者我想要访问某个私有成员,这样我就可以更轻松地设置对象的状态,以便我可以测试它.对我来说,这有助于保持封装和抽象,因为我没有修改类的公共接口或受保护的接口.

如果我购买第三方库,我不希望它的公共接口被一堆我不需要知道的公共方法污染,因为供应商想要进行单元测试!

我也不想担心一群受保护的成员,如果我从一个类继承,我不需要知道.

这就是我说它保留抽象和封装的原因.

在我的新工作中,他们不赞成使用朋友课,甚至进行单元测试.他们说因为班级不应该"知道"关于测试的任何内容,而且你不希望课程和测试的紧密耦合.

有人可以向我解释这些理由,以便我可以更好地理解吗?我只是不明白为什么使用朋友进行单元测试很糟糕.

c++ oop unit-testing encapsulation friend

54
推荐指数
5
解决办法
2万
查看次数

Double转义字符串是错误的吗?

我有一个数据库类,在使用mysqli_real_escape_string()构建查询之前自动转义输入字符串.但可能是在脚本中,字符串被转义然后传递给再次转义它的数据库类.这可能是错的吗?怎么会发生什么?

php mysql string escaping

3
推荐指数
2
解决办法
3694
查看次数

Spring-MVC最佳实践:为什么将事务放在服务上而不是DAO上?

我在这里的第一个项目中学习Spring-MVC.

在阅读有关事务的文档之后,我注意到所有示例都将事务放在服务对象/方法周围,而不是DAO(数据访问对象/方法).

我想知道为什么.如果不知道更好,我会考虑在访问数据库的大多数DAO方法周围添加事务(我的想法:数据库=事务).我还没有很多跨越多个DAO的服务方法(但我想这可能是将服务标记为事务的原因).

问题:
我只想知道其他人在这种情况下做了什么.您是否自然地将事务放在最低级别的项目周围(例如,围绕DAO,并且只有当它们以需要事务的方式跨越多个DAO时才围绕服务)?

或者您只关注作为一般主体的服务交易?因此,坚持一层,因为从长远来看,这是更全面的?

java transactions spring-mvc

8
推荐指数
1
解决办法
2066
查看次数

NamedNodeMap的通用foreach迭代

在Java中,查看NamedNodeMap接口,如何使用泛型进行迭代?它似乎使用Node而不是String,但我不太确定如何使用Node对象......

NamedNodeMap namedNodeMap = doc.getAttributes();
Map<String, String> stringMap = (Map<String, String>) namedNodeMap;
for (Map.Entry<String, String> entry : stringMap.entrySet()) {
  //key,value stuff here
}
Run Code Online (Sandbox Code Playgroud)

是的,我可以看到如何迭代而不使用泛型和常规for循环,但我想使用上面的?成语?对于地图.当然,问题似乎是,尽管名称,NamedNodeMap实际上并没有实现Map接口!:(

猜猜你只需要咬紧牙关,做一些像:

/*
 * Iterates through the node attribute map, else we need to specify specific 
 * attribute values to pull and they could be of an unknown type
 */
private void iterate(NamedNodeMap attributesList) {
    for (int j = 0; j < attributesList.getLength(); j++) {
        System.out.println("Attribute: "
                + attributesList.item(j).getNodeName() + " = "
                + attributesList.item(j).getNodeValue()); …
Run Code Online (Sandbox Code Playgroud)

java xml generics iteration w3c

22
推荐指数
2
解决办法
2万
查看次数

Qt中Q_WS_*和Q_OS_*有什么区别?

Qt中Q_WS_*和Q_OS_*之间的区别是什么?你何时使用另一个?我知道操作系统是在操作系统上定义的,并且WS是为窗口系统定义的,但我看不到你何时使用它而不是另一个.例如,Q_WS_MAC和Q_OS_MAC不会相同吗?什么是一般规则,我可以为每个使用一些示例用例吗?

qt

6
推荐指数
1
解决办法
3762
查看次数