小编Dir*_*irk的帖子

如何在Git Gui中丢弃文件的更改?

通常在使用Git Gui时我想重置/签出单个文件或者只是解雇一个大块.

有没有办法在Git Gui中轻松完成这项工作?如果没有,是否有任何特殊原因在Git Gui中没有此功能?

git git-gui

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

使用()或不创建对象之间的区别

我刚遇到这个问题

error: request for member ‘show’ in ‘myWindow’, which is of non-class type ‘MainGUIWindow()’
Run Code Online (Sandbox Code Playgroud)

当试图编译一个简单的qt应用程序时:

#include <QApplication>
#include "gui/MainGUIWindow.h"


int main( int argc, char** argv )
{
  QApplication app( argc, argv );


  MainGUIWindow myWindow();
  myWindow.show();


  return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

我通过替换解决了这个问题

MainGUIWindow myWindow(); 
Run Code Online (Sandbox Code Playgroud)

通过

MainGUIWindow myWindow;
Run Code Online (Sandbox Code Playgroud)

但我不明白其中的区别.我的问题:有什么区别?

此致,德克

c++ qt most-vexing-parse

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

为什么这个Go代码会阻塞?

我写了以下程序:

package main

import (
    "fmt"
)

func processevents(list chan func()) {
    for {
        //a := <-list
        //a()
    }
}

func test() {
    fmt.Println("Ho!")
}

func main() {

    eventlist := make(chan func(), 100)

    go processevents(eventlist)

    for {
        eventlist <- test
        fmt.Println("Hey!")
    }
}
Run Code Online (Sandbox Code Playgroud)

由于频道事件列表是一个缓冲频道,我想我应该得到输出"嘿!"的100倍,但它只显示一次.我的错误在哪里?

go goroutine

12
推荐指数
2
解决办法
4185
查看次数

CUDA中的半精度浮点数

CUDA中有半精度浮点数吗?

背景:我想使用glTexSubImage3D操作一个opengl纹理,其中包含我使用CUDA生成的PBO中的数据.纹理以GL_INTENSITY16格式(这是半精度浮动类型afaik)存储,我不想使用glPixelTransferf(GL_x_SCALE,...)从整数值缩放,因为它没有缩放似乎更快.

有什么建议?

opengl cuda

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

优化sympy生成的代码

使用SymPy查找衍生物(请参阅此问题:https://math.stackexchange.com/questions/726104/apply-chain-rule-to-vector-function-with-chained-dot-and-cross-product),我想出了这段代码:

from sympy import *
from sympy.physics.mechanics import *
from sympy.printing import print_ccode
from sympy.utilities.codegen import codegen


x1, x2, x3 = symbols('x1 x2 x3')
y1, y2, y3 = symbols('y1 y2 y3')
z1, z2, z3 = symbols('z1 z2 z3')

u = ReferenceFrame('u')

u1=(u.x*x1 + u.y*y1 + u.z*z1)
u2=(u.x*x2 + u.y*y2 + u.z*z2)
u3=(u.x*x3 + u.y*y3 + u.z*z3)

s1=(u1-u2).normalize()
s2=(u2-u3).normalize()
v=cross(s1, s2)
f=dot(v,v)

df_dy2=diff(f, y2)


print_ccode(df_dy2, assign_to='df_dy2')


[(c_name, c_code), (h_name, c_header)] = codegen( ("df_dy2", df_dy2), "C", "test", header=False, …
Run Code Online (Sandbox Code Playgroud)

c python optimization sympy

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

如何用sympy求解矩阵方程?

同情,给出一个矩阵方程

M*x + N*y = 0(或更复杂..)

如何为x解决这个问题?(M,N =矩阵,x,y =向量)

我用普通符号尝试了这个,但显然失败了.使用MatrixSymbol也不行.有没有办法做到这一点,或者是否有能力做到这一点?

python symbolic-math sympy

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

GPU 或 CPU 上的稀疏矩阵乘法?

你怎么认为?什么会更快,多快:在 GPU 或 CPU(多线程)上进行稀疏矩阵 (CSR) 乘法(带有向量)?

gpu sparse-matrix

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

在编写类似的CUDA内核时,如何在没有宏的情况下重复自己?

我有几个CUDA内核基本上做了相同的一些变化.我想做的是减少所需代码的数量.我的第一个想法是使用宏,所以我生成的内核看起来像这样(简化):

__global__ void kernelA( ... )
{
   INIT(); // macro to initialize variables

   // do specific stuff for kernelA
   b = a + c;

   END(); // macro to write back the result
}

__global__ void kernelB( ... )
{
   INIT(); // macro to initialize variables

   // do specific stuff for kernelB
   b = a - c;

   END(); // macro to write back the result
}
...
Run Code Online (Sandbox Code Playgroud)

由于宏是讨厌的,丑陋的和邪恶的,我正在寻找一种更好,更清洁的方式.有什么建议?

(switch语句不能完成这项工作:实际上,相同的部分和特定于内核的部分是相互交织的.需要几个switch语句才能使代码变得难以理解.此外,函数调用不会初始化所需的变量.)

(这个问题也可能对一般的C++负责,只需用'function'替换所有'CUDA内核'并删除'__global__')

c++ macros cuda dry

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

一种用不同变量做同样的方法

我有类似的东西

class Foo {
    Bar a, b, c;

    void doStuffWithA();
    void doStuffWithB();
    void doStuffWithC();
}
Run Code Online (Sandbox Code Playgroud)

而不是为每个我希望像模板这样的方法编写实现.怎么做?

干杯,德克

编辑:

我明确需要知道我做的变量(递归):

class Foo {
    Bar a, b, c;
    Foo* parent;

    static void doRecursiveStuffWithA(Foo *_node) {
        if(_node->parent==NULL) {

            return;
        } else {
            doRecursiveStuffWithA(_node->parent)
        }

    }
    static void doRecursiveStuffWithB(Foo *_node) {
        if(_node->parent==NULL) {
            return;
        } else {
            doRecursiveStuffWithB(_node->parent)
        }

    }
    static void doRecursiveStuffWithC(Foo *_node) {
        if(_node->parent==NULL) {
            return;
        } else {
            doRecursiveStuffWithC(_node->parent)
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

EDIT2:

也许这确实解释了我的问题是什么:

class Foo {
public:
    int a, b, …
Run Code Online (Sandbox Code Playgroud)

c++ templates

0
推荐指数
1
解决办法
77
查看次数

仅使用一个构造函数调用的数组初始化

在cpp中,这或类似的东西可能吗?

Foo bar[23] = Foo();
Run Code Online (Sandbox Code Playgroud)

编辑:

这个问题的动机是我认为我看到有人使用这种语法

vtkSmartPointer<Foo> bar[23] = vtkSmartPointer<Foo>::New();
Run Code Online (Sandbox Code Playgroud)

并想知道它为什么编译以及实际创建了多少新对象......

c++ arrays

0
推荐指数
1
解决办法
108
查看次数

在sympy中按符号索引矩阵

我尝试在这样的总和中索引矩阵

from sympy import *
vx1,vx2,vx3,vx4,vx5, vy1,vy2,vy3,vy4,vy5,  = symbols('vx1 vx2 vx3 vx4 vx5 vy1 vy2 vy3 vy4 vy5')
vx=Matrix([vx1,vx2,vx3,vx4,vx5])
vy=Matrix([vy1,vy2,vy3,vy4,vy5])
p, n = symbols('p n', integer=True)
vx[0]
vx[1]
vx[2]
vx[3]
summation(p, (p, 0, 4))
summation(vx[p], (p, 0, 4)) 
Run Code Online (Sandbox Code Playgroud)

但似乎 sympy 不能这样做:

NameError: IndexError: Invalid index a[p]
Run Code Online (Sandbox Code Playgroud)

有办法吗?

python sympy

0
推荐指数
1
解决办法
1378
查看次数