powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничный бенчмарк CPU (part-1)
1 сообщений из 1 076, страница 44 из 44
Тяпничный бенчмарк CPU (part-1)
    #40113365
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал реализацию ziglang. Пока вот застрял в этом месте.

Код: plaintext
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.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
onst std = @import("std");

/// 12-Nov-2021 - mayton : In beginning...

const WIDTH = 512;
const HEIGHT = 512;
const SUB_SAMPLES = 64;


const Vector = struct {
    x: f64,
    y: f64,
    z: f64,

    pub fn init(x: f64, y: f64, z: f64) Vector {
      return Vector {
        .x = x,
        .y = y,
        .z = z
      };
    }

    pub fn plus(self: Vector, that: Vector) Vector {
        return Vector { self.x + that.x, self.y + that.y, self.z + that.z };
    }

    pub fn vprod(self: Vector, r: Vector) Vector {
        return Vector {
                self.y * r.z - self.z * r.y,
                self.z * r.x - self.x * r.z,
                self.x * r.y - self.y * r.x };
    }

    pub fn norm(self: Vector) Vector {
      return self.prod(1.0 / @sqrt(self.sprod(self)));
    }

    pub fn prod(self: Vector, r: f64) Vector {
        return Vector.init(self.x * r, self.y * r, self.z * r);
    }

    pub fn sprod(self: Vector, that: Vector) f64 {
        return self.x * that.x + self.y * that.y + self.z * that.z;
    }
};

const G = [_] i32 {
  0x0003C712,
  0x00044814,
  0x00044818,
  0x0003CF94,
  0x00004892,
  0x00004891,
  0x00038710,
  0x00000010,
  0x00000010
};

const ZERO_VECTOR = Vector.init(0.0, 0.0, 0.0);
const Z_ORTHO_VECTOR = Vector.init(0, 0, 1);
const CAMERA_ASPECT_VECTOR = Vector.init(17, 16, 8);
const CAMERA_DEST_VECTOR = Vector.init(-6.0, -16.0, 0.0);

const COLOR_CELL1_VECTOR = Vector.init(3, 1, 1);
const COLOR_CELL2_VECTOR = Vector.init(3, 3, 3);
const COLOR_DARK_GRAY_VECTOR = Vector.init(13, 13, 13);
const COLOR_SKY = Vector.init(0.7, 0.6, 1);

// TODO: Pass n by ref to return
pub fn tracer(o : Vector, d : Vector, t : f64, n : Vector) i32 {
  // ....
  return 0;
}

pub fn sampler(o : Vector, d: Vector) Vector {
  // ....
  return Vector.init(0,0,0);
}

pub fn process() void {
  var g: Vector = CAMERA_DEST_VECTOR.norm();
  var y : i32 = HEIGHT - 1;
  var x : i32 = WIDTH - 1;
  while (y >= 0) {
    while (x >= 0) {
      var p : Vector = COLOR_DARK_GRAY_VECTOR;
      var r : i32 = 0;
      while (r < SUB_SAMPLES) {
        const red   = @floatToInt(i32, p.x);
        const green = @floatToInt(i32, p.y);
        const blue  = @floatToInt(i32, p.z);
        const stdout = std.io.getStdOut().writer();

        // ./card-raytracer.zig:93:9: error: expected type 'void', found 'std.os.WriteError'
        // try stdout.print("Hello, {s}!\n", .{"world"});
        
        try stdout.print("Hello, {s}!\n", .{"world"});
        r = r + 1;
      }
    }
    y = y - 1;
  }
}

pub fn main() !void {
  const stdout = std.io.getStdOut().writer();
  try stdout.print("P6 {} {} 255", .{WIDTH, HEIGHT});
  process();
}
...
Рейтинг: 0 / 0
1 сообщений из 1 076, страница 44 из 44
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничный бенчмарк CPU (part-1)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (9): Анонимы (6), Yandex Bot, Bing Bot, Google Bot 1 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]