小编Mat*_*ath的帖子

类型推断在具有静态成员约束的泛型类型上失败

我已经定义了以下类型(从代码中简化):

type Polynomial<'a when 'a :(static member public Zero : 'a) 
                and 'a: (static member (+): 'a*'a -> 'a) 
                and 'a : (static member (*): 'a*'a -> 'a) >  =
    | Polynomial of 'a list
    with 
    static member inline (+) (x: Polynomial<'a> , y : Polynomial<'a>) : Polynomial<'a>= 
        match x,y with
        |Polynomial xlist, Polynomial ylist ->
            let longer, shorter = 
                if xlist.Length> ylist.Length then xlist, ylist
                else ylist, xlist
            let shorterExtended = List.append shorter (List.init (longer.Length - shorter.Length) (fun _ …
Run Code Online (Sandbox Code Playgroud)

generics f# type-inference

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

无法从C导入numpy

我无法使用Python C API打开numpy。我有以下代码

#include<Python.h>
int main()
{
    Py_Initialize();
    PyRun_SimpleString("import numpy");
    PyObject* numpy = PyImport_ImportModule("numpy");
    Py_Finalize();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

该行PyRun_SimpleString("import numpy")打印到控制台:

追溯(最近一次通话最近):文件“ C:\ Users \ matt.heath \ AppData \ Local \ Continuum \ Anaconda3 \ lib \ site-packages \ numpy__init __。py”中的行1,在第180行中来自。从numpy.lib的第13行,导入add_newdocs文件“ C:\ Users \ matt.heath \ AppData \ Local \ Continuum \ Anaconda3 \ lib \ site-packages \ numpy \ add_newdocs.py” import add_newdoc文件“ C:\ Users \ matt.heath \ AppData \ Local \ Continuum \ Anaconda3 \ lib \ site-packages …

c python numpy python-c-api

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

omp_get_num_threads()和omp_get_thread_num()返回废话

我刚开始使用英特尔Fortran编译器和Visual Studio 2015在Fortran中使用OpenMP.在项目属性中,我将"Fortran - >语言 - >处理OpenMP指令"设置为"生成并行代码(/ Qopenmp)"

我有一个简单的程序,如下所示:

program hellothreads
   integer threads, id
   call omp_set_num_threads(3)   
   threads = omp_get_num_threads()

   print *,"there are",  threads, "threads"
Run Code Online (Sandbox Code Playgroud)

这产生了

有-2147483648个主题

当然没有.设置线程数似乎可以正常工作,因为:

   !$OMP Parallel private(id) shared(threads)
   threads = omp_get_num_threads()
   id = omp_get_thread_num()
   print *, "hello from thread", id, "out of", threads
   !$OMP end Parallel
Run Code Online (Sandbox Code Playgroud)

输出

你好,来自-2147483648的主题-2147483648

你好,来自-2147483648的主题-2147483648

你好,来自-2147483648的主题-2147483648

并继续:

   !$OMP Parallel private(id) shared(threads)
   threads = omp_get_num_threads()
   id = omp_get_thread_num()
   print *, "this is thread", id, "of", threads
   !$OMP end Parallel
Run Code Online (Sandbox Code Playgroud)

输出

这是-2147483648的主题-2147483648

这是-2147483648的主题-2147483648

最后,如果我在"print"中调用OpenMP函数,则会有不同的 …

multithreading fortran openmp visual-studio-2015

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