Форум программистов, компьютерный форум CyberForum.ru

Фрактал Джулия - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Можно обратиться к локальной переменной из другой функции? http://www.cyberforum.ru/cpp-beginners/thread648204.html
Можно ли как-нибудь обратиться к локальной переменной из другой функции? Например: int PaPoRoTnik(){ extern int qq; int qq2=124; qq=qq2; // Вот здесь, можно как-нибудь значение передать???? } main(){ int qq=123;
C++ даны два действительных числа даны два действительных числа которые не равны друг другу.если введены одинаковые то попросить повторить ввод.Меньшее из этих чисел заменить их средним арифметич. и большее их произведением http://www.cyberforum.ru/cpp-beginners/thread648183.html
C++ <iostream> зачем тогда объявлять <string>?
вот такой пример, в котором локальная переменная скрывает глобальную, но вопрос то не в этом, почему автор подключил <string>? У меня все работает, если даже я просто <iostream> подключаю (среда Geany, компилятор MinGW) #include <iostream> //#include <string> !!!непонятно зачем.....!!! std::string s1="hello"; int main() { std::string s2 = "world"; std::cout<<s1<<" "<<s2<<std::endl; int...
Вычисление координат точки пересечения двух заданных уравнениями прямых C++
две прямые описываются уравнениями: а1х+в1у+с1=0; а2х+в2у+с2=0. напечатать координаты точки пересечения этих прямых, либо сообщить что эти прямые совпадают, не пересекаются или вовсе не существует
C++ составить алгоритм подсчета количества способов, которыми можно разменять рубль медными монетами(достоинством в1,2,3,5 копеек) http://www.cyberforum.ru/cpp-beginners/thread648158.html
составить алгоритм подсчета количества способов, которыми можно разменять рубль медными монетами(достоинством в1,2,3,5 копеек)
C++ Интегралы. BC++ Помогите написать задачу. Именно борланд С++. Заранее спасибо!!! подробнее

Показать сообщение отдельно
Danzel
6 / 6 / 3
Регистрация: 21.08.2012
Сообщений: 45
07.09.2012, 18:42     Фрактал Джулия
Здравствуйте, решил разобраться с примером по куда из книги Сандерса,вот код:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include "gl_helper.h"
#include "cpu_bitmap.h"
#include "book.h"
 
#define DIM 1000
 
struct cuComplex 
{
    double r;
    double i;
    cuComplex( double a, double b) : r(a), i(b) {}   //конструктор
    __device__ double magnitude2(void)
    {
        return r*r+i*i;
    }
    __device__ cuComplex operator+(const cuComplex& a)
    {
        return cuComplex(r+a.r, i+a.i);
    }
 
    __device__ cuComplex operator*(const cuComplex& a)
    {
        return cuComplex(r*a.r-i*a.i, i*a.r+r*a.i);
    }
};  
 
 
 __device__ int julia(int x, int y)
{
    const float scale = 1.5;
    double jx=scale*(double)(DIM/2 - x)/(DIM/2);
    double jy=scale*(double)(DIM/2 - x)/(DIM/2);
    cuComplex  c(-0.8, 0.156);
    cuComplex  a(jx , jy);
 
    int i=0;
    for(i=0;i<200;i++){
        a=a*a + c;
        if(a.magnitude2()>1000)
            return 0;
    }
    return 1;
}
 
 
 __global__ void kernel(unsigned char *ptr){
    //отображаем blockIdx на позицию пикселя
    int x=blockIdx.x;
    int y=blockIdx.y;
    int offset = x+y*gridDim.x;
    //вычисления значения в этой позиции
    int juliaValue=julia(x,y);
    ptr[offset*4 + 0]=255*juliaValue;
    ptr[offset*4 + 1]=0;
    ptr[offset*4 + 2]=0;
    ptr[offset*4 + 3]=255;
}
 
int main(void){
    CPUBitmap bitmap(DIM,DIM);
    unsigned char *dev_bitmap;
    cudaMalloc((void**)&dev_bitmap,bitmap.image_size() );
    dim3 grid(DIM,DIM);
    kernel<<<grid,1>>>(dev_bitmap);
    cudaMemcpy(bitmap.get_ptr(),dev_bitmap,bitmap.image_size(),cudaMemcpyDeviceToHost);
    bitmap.display_and_exit();
    cudaFree(dev_bitmap);
    
}


после компелирования выдает 4 ошибки:
1>c:/Users/ъюы*/Documents/Visual Studio 2008/Projects/julia/julia/main.cu(37): error: calling a host function("cuComplex::cuComplex") from a __device__/__global__ function("julia") is not allowed
1>c:/Users/ъюы*/Documents/Visual Studio 2008/Projects/julia/julia/main.cu(38): error: calling a host function("cuComplex::cuComplex") from a __device__/__global__ function("julia") is not allowed
1>c:/Users/ъюы*/Documents/Visual Studio 2008/Projects/julia/julia/main.cu(42): error: calling a host function("cuComplex::cuComplex") from a __device__/__global__ function("julia") is not allowed
1>c:/Users/ъюы*/Documents/Visual Studio 2008/Projects/julia/julia/main.cu(42): error: calling a host function("cuComplex::cuComplex") from a __device__/__global__ function("julia") is not allowed

с одногрупником попробовали исправить ,но наши старания успехов не принесли,помогите пожалуйста,заранее спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru