Можно ли использовать функции индексации блиц ++ и блиц-функции в scipy.weave.inline - PullRequest
1 голос
/ 09 февраля 2012

В документе scipy приведены примеры операций в стиле Blitz ++ при использовании weave.blitz() и индексации в стиле C при использовании weave.inline().weave.inline() также поддерживает индексацию и сокращения в стиле Blitz ++.Это будет очень удобно.Если weave.inline() действительно разрешает индексацию в стиле Blitz ++, подскажите, как получить массив Blitz из массива numpy в коде weave.inline().Очень ценится.

1 Ответ

1 голос
/ 10 февраля 2012

Вот пример, установите type_converter = weave.converters.blitz при вызове weave.inline ()

# -*- coding: utf-8 -*-
import scipy.weave as weave
import numpy as np
import time

def my_sum(a):
    n=int(len(a))
    code="""
    int i;

    double counter;
    counter =0;
    for(i=0;i<n;i++){
        counter=counter+a(i);
    }
    return_val=counter;
    """

    err=weave.inline(  
        code,   
        ['a','n'],   
        type_converters=weave.converters.blitz, 
        compiler="gcc"  
    )
    return err

a = np.arange(0, 10000000, 1.0)
print my_sum(a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...