- 1
IT Оффтоп #233
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
IT Оффтоп #233
#203: https://govnokod.ru/28954 https://govnokod.xyz/_28954
#204: https://govnokod.ru/28971 https://govnokod.xyz/_28971
#205: https://govnokod.ru/28986 https://govnokod.xyz/_28986
#206: https://govnokod.ru/28991 https://govnokod.xyz/_28991
#207: https://govnokod.ru/29002 https://govnokod.xyz/_29002
#208: https://govnokod.ru/29060 https://govnokod.xyz/_29060
#209: https://govnokod.ru/29070 https://govnokod.xyz/_29070
#210: https://govnokod.ru/29079 https://govnokod.xyz/_29079
#211: https://govnokod.ru/29092 https://govnokod.xyz/_29092
#212: https://govnokod.ru/29093 https://govnokod.xyz/_29093
#213: https://govnokod.ru/29104 https://govnokod.xyz/_29104
#214: https://govnokod.ru/29114 https://govnokod.xyz/_29114
#215: https://govnokod.ru/29125 https://govnokod.xyz/_29125
#216: https://govnokod.ru/29132 https://govnokod.xyz/_29132
#217: https://govnokod.ru/29147 https://govnokod.xyz/_29147
#218: https://govnokod.ru/29156 https://govnokod.xyz/_29156
#219: https://govnokod.ru/29166 https://govnokod.xyz/_29166
#220: https://govnokod.ru/29181 https://govnokod.xyz/_29181
#221: https://govnokod.ru/29185 https://govnokod.xyz/_29185
#222: https://govnokod.ru/29190 https://govnokod.xyz/_29190
#223: https://govnokod.ru/29203 https://govnokod.xyz/_29203
#224: https://govnokod.ru/29211 https://govnokod.xyz/_29211
#225: https://govnokod.ru/29212 https://govnokod.xyz/_29212
#226: https://govnokod.ru/29218 https://govnokod.xyz/_29218
#227: https://govnokod.ru/29220 https://govnokod.xyz/_29220
#228: https://govnokod.ru/29230 https://govnokod.xyz/_29230
#229: https://govnokod.ru/29235 https://govnokod.xyz/_29235
#230: https://govnokod.ru/29241 https://govnokod.xyz/_29241
#231: https://govnokod.ru/29246 https://govnokod.xyz/_29246
#232: https://govnokod.ru/29249 https://govnokod.xyz/_29249
Пиздец-оффтоп #128
#98: https://govnokod.ru/28932 https://govnokod.xyz/_28932
#99: https://govnokod.ru/28936 https://govnokod.xyz/_28936
#100: https://govnokod.ru/28940 https://govnokod.xyz/_28940
#101: https://govnokod.ru/28949 https://govnokod.xyz/_28949
#102: https://govnokod.ru/28978 https://govnokod.xyz/_28978
#103: https://govnokod.ru/28982 https://govnokod.xyz/_28982
#104: https://govnokod.ru/28989 https://govnokod.xyz/_28989
#105: https://govnokod.ru/29052 https://govnokod.xyz/_29052
#106: https://govnokod.ru/29069 https://govnokod.xyz/_29069
#107: https://govnokod.ru/29086 https://govnokod.xyz/_29086
#108: https://govnokod.ru/29102 https://govnokod.xyz/_29102
#109: https://govnokod.ru/29126 https://govnokod.xyz/_29126
#110: https://govnokod.ru/29136 https://govnokod.xyz/_29136
#111: https://govnokod.ru/29142 https://govnokod.xyz/_29142
#112: https://govnokod.ru/29155 https://govnokod.xyz/_29155
#113: https://govnokod.ru/29160 https://govnokod.xyz/_29160
#114: https://govnokod.ru/29165 https://govnokod.xyz/_29165
#115: https://govnokod.ru/29173 https://govnokod.xyz/_29173
#116: https://govnokod.ru/29174 https://govnokod.xyz/_29174
#117: https://govnokod.ru/29182 https://govnokod.xyz/_29182
#118: https://govnokod.ru/29191 https://govnokod.xyz/_29191
#119: https://govnokod.ru/29196 https://govnokod.xyz/_29196
#120: https://govnokod.ru/29205 https://govnokod.xyz/_29205
#121: https://govnokod.ru/29216 https://govnokod.xyz/_29216
#122: https://govnokod.ru/29219 https://govnokod.xyz/_29219
#123: https://govnokod.ru/29232 https://govnokod.xyz/_29232
#124: https://govnokod.ru/29237 https://govnokod.xyz/_29237
#125: https://govnokod.ru/29239 https://govnokod.xyz/_29239
#126: https://govnokod.ru/29244 https://govnokod.xyz/_29244
#127: https://govnokod.ru/29248 https://govnokod.xyz/_29248
Питушня #43
#13: https://govnokod.ru/27260 https://govnokod.xyz/_27260
#14: https://govnokod.ru/27343 https://govnokod.xyz/_27343
#15: https://govnokod.ru/27353 https://govnokod.xyz/_27353
#16: https://govnokod.ru/27384 https://govnokod.xyz/_27384
#17: https://govnokod.ru/27482 https://govnokod.xyz/_27482
#18: https://govnokod.ru/27514 https://govnokod.xyz/_27514
#19: https://govnokod.ru/27620 https://govnokod.xyz/_27620
#20: https://govnokod.ru/27816 https://govnokod.xyz/_27816
#21: https://govnokod.ru/27956 https://govnokod.xyz/_27956
#22: https://govnokod.ru/28143 https://govnokod.xyz/_28143
#23: https://govnokod.ru/28315 https://govnokod.xyz/_28315
#24: (vanished) https://govnokod.xyz/_28362
#25: (vanished) https://govnokod.xyz/_28463
#26: https://govnokod.ru/28481 https://govnokod.xyz/_28481
#27: https://govnokod.ru/28537 https://govnokod.xyz/_28537
#28: https://govnokod.ru/28619 https://govnokod.xyz/_28619
#29: (vanished) https://govnokod.xyz/_28663
#30: https://govnokod.ru/28673 https://govnokod.xyz/_28673
#31: https://govnokod.ru/28679 https://govnokod.xyz/_28679
#32: https://govnokod.ru/28687 https://govnokod.xyz/_28687
#33: https://govnokod.ru/28694 https://govnokod.xyz/_28694
#34: https://govnokod.ru/28701 https://govnokod.xyz/_28701
#35: https://govnokod.ru/28707 https://govnokod.xyz/_28707
#36: https://govnokod.ru/28714 https://govnokod.xyz/_28714
#37: https://govnokod.ru/28724 https://govnokod.xyz/_28724
#38: https://govnokod.ru/28732 https://govnokod.xyz/_28732
#39: https://govnokod.ru/28839 https://govnokod.xyz/_28839
#40: https://govnokod.ru/28909 https://govnokod.xyz/_28909
#41: https://govnokod.ru/29003 https://govnokod.xyz/_29003
#42: https://govnokod.ru/29186 https://govnokod.xyz/_29186
struct IText{
typedef boost::shared_ptr<IText> SPtr;
virtual void draw() = 0;
virtual void add(const SPtr&) {
throw std::runtime_error("IText: Can't add to a leaf");
}
virtual void remove(const SPtr&){
throw std::runtime_error("IText: Can't remove from a leaf");
}
};
struct CompositeText: public IText{
void add(const SPtr& sptr){
children_.push_back(sptr);
}
void remove(const SPtr& sptr){
children_.remove(sptr);
}
void replace(const SPtr& oldValue, const SPtr& newValue){
std::replace(children_.begin(), children_.end(), oldValue, newValue);
}
virtual void draw(){
BOOST_FOREACH(SPtr& sptr, children_){
sptr->draw();
}
}
private:
std::list<SPtr> children_;
};
struct Letter: public IText{
Letter(char c):c_(c) {}
virtual void draw(){
std::cout<<c_;
}
private:
char c_;
};
int main(){
CompositeText sentence;
IText::SPtr lSpace(new Letter(' '));
IText::SPtr lExcl(new Letter('!'));
IText::SPtr lComma(new Letter(','));
IText::SPtr lNewLine(new Letter('\n'));
IText::SPtr lH(new Letter('H')); // letter 'H'
IText::SPtr le(new Letter('e')); // letter 'e'
IText::SPtr ll(new Letter('l')); // letter 'l'
IText::SPtr lo(new Letter('o')); // letter 'o'
IText::SPtr lW(new Letter('W')); // letter 'W'
IText::SPtr lr(new Letter('r')); // letter 'r'
IText::SPtr ld(new Letter('d')); // letter 'd'
IText::SPtr li(new Letter('i')); // letter 'i'
IText::SPtr wHello(new CompositeText);
wHello->add(lH);
wHello->add(le);
wHello->add(ll);
wHello->add(ll);
wHello->add(lo);
IText::SPtr wWorld(new CompositeText); // word "World"
wWorld->add(lW);
wWorld->add(lo);
wWorld->add(lr);
wWorld->add(ll);
wWorld->add(ld);
sentence.add(wHello);
sentence.add(lComma);
sentence.add(lSpace);
sentence.add(wWorld);
sentence.add(lExcl);
sentence.add(lNewLine);
sentence.draw(); // ptrints "Hello, World!\n"
IText::SPtr wHi(new CompositeText); // word "Hi"
wHi->add(lH);
wHi->add(li);
sentence.replace(wHello, wHi);
sentence.draw(); // ptrints "Hi, World!\n"
sentence.remove(wWorld);
sentence.remove(lSpace);
sentence.remove(lComma);
sentence.draw(); // ptrints "Hi!\n"
Hi, World! Психологическая зависимость от надуманного ООП убивает проекты и их создателей. Всё хорошо в меру. (Найдено на просторах интернета).
use32
kernel:
mov ax,0x8
mov es,ax
mov ds,ax
mov ss,ax
mov esp,0x10000
macro SetPixel x,y
{
mov ebx,x
mov eax,y
call GSetPixel
}
mov esi,0xA0000
xor ecx,ecx
@@:
mov eax,dword[charH+ecx*4]
mov dword[esi],eax
add esi,320
inc ecx
cmp ecx,7
jb @b
mov esi,0xA0006
xor ecx,ecx
@@:
mov eax,dword[charE+ecx*4]
mov dword[esi],eax
add esi,320
inc ecx
cmp ecx,7
jb @b
mov esi,0xA000C
xor ecx,ecx
@@:
mov eax,dword[charL+ecx*4]
mov dword[esi],eax
add esi,320
inc ecx
cmp ecx,7
jb @b
mov esi,0xA0012
xor ecx,ecx
@@:
mov eax,dword[charL+ecx*4]
mov dword[esi],eax
add esi,320
inc ecx
cmp ecx,7
jb @b
mov esi,0xA0018
xor ecx,ecx
@@:
mov eax,dword[charO+ecx*4]
mov dword[esi],eax
add esi,320
inc ecx
cmp ecx,7
jb @b
jmp $
charH dd 0x0F00000F
dd 0x0F00000F
dd 0x0F00000F
dd 0x0F0F0F0F
dd 0x0F00000F
dd 0x0F00000F
dd 0x0F00000F
charE dd 0x0F0F0F0F
dd 0x0000000F
dd 0x0000000F
dd 0x0F0F0F0F
dd 0x0000000F
dd 0x0000000F
dd 0x0F0F0F0F
charL dd 0x0000000F
dd 0x0000000F
dd 0x0000000F
dd 0x0000000F
dd 0x0000000F
dd 0x0000000F
dd 0x0F0F0F0F
charO dd 0x000F0F00
dd 0x0F00000F
dd 0x0F00000F
dd 0x0F00000F
dd 0x0F00000F
dd 0x0F00000F
dd 0x000F0F00
Раскопал в старых файлах. Выводит на экран незамысловатое слово HELLO
На World у меня бы одного бут-сектора не хватило.
Бесконечный оффтоп имени Гологуба #9
#1: https://govnokod.ru/28992 https://govnokod.xyz/_28992
#2: https://govnokod.ru/29053 https://govnokod.xyz/_29053
#3: https://govnokod.ru/29075 https://govnokod.xyz/_29075
#4: https://govnokod.ru/29110 https://govnokod.xyz/_29110
#5: https://govnokod.ru/29127 https://govnokod.xyz/_29127
#6: https://govnokod.ru/29140 https://govnokod.xyz/_29140
#7: https://govnokod.ru/29170 https://govnokod.xyz/_29170
#8: https://govnokod.ru/29192 https://govnokod.xyz/_29192
IT Оффтоп #232
#202: https://govnokod.ru/28951 https://govnokod.xyz/_28951
#203: https://govnokod.ru/28954 https://govnokod.xyz/_28954
#204: https://govnokod.ru/28971 https://govnokod.xyz/_28971
#205: https://govnokod.ru/28986 https://govnokod.xyz/_28986
#206: https://govnokod.ru/28991 https://govnokod.xyz/_28991
#207: https://govnokod.ru/29002 https://govnokod.xyz/_29002
#208: https://govnokod.ru/29060 https://govnokod.xyz/_29060
#209: https://govnokod.ru/29070 https://govnokod.xyz/_29070
#210: https://govnokod.ru/29079 https://govnokod.xyz/_29079
#211: https://govnokod.ru/29092 https://govnokod.xyz/_29092
#212: https://govnokod.ru/29093 https://govnokod.xyz/_29093
#213: https://govnokod.ru/29104 https://govnokod.xyz/_29104
#214: https://govnokod.ru/29114 https://govnokod.xyz/_29114
#215: https://govnokod.ru/29125 https://govnokod.xyz/_29125
#216: https://govnokod.ru/29132 https://govnokod.xyz/_29132
#217: https://govnokod.ru/29147 https://govnokod.xyz/_29147
#218: https://govnokod.ru/29156 https://govnokod.xyz/_29156
#219: https://govnokod.ru/29166 https://govnokod.xyz/_29166
#220: https://govnokod.ru/29181 https://govnokod.xyz/_29181
#221: https://govnokod.ru/29185 https://govnokod.xyz/_29185
#222: https://govnokod.ru/29190 https://govnokod.xyz/_29190
#223: https://govnokod.ru/29203 https://govnokod.xyz/_29203
#224: https://govnokod.ru/29211 https://govnokod.xyz/_29211
#225: https://govnokod.ru/29212 https://govnokod.xyz/_29212
#226: https://govnokod.ru/29218 https://govnokod.xyz/_29218
#227: https://govnokod.ru/29220 https://govnokod.xyz/_29220
#228: https://govnokod.ru/29230 https://govnokod.xyz/_29230
#229: https://govnokod.ru/29235 https://govnokod.xyz/_29235
#230: https://govnokod.ru/29241 https://govnokod.xyz/_29241
#231: https://govnokod.ru/29246 https://govnokod.xyz/_29246
const n = 50;
type vec = array [1..n*4] of system.word;
function vprod(const a, b: vec): Cardinal;
var i: longInt;
begin
result := 0;
for i := 1 to high(vec) do inc(result, a[i] * b[i]);
end;
function vprod_asm1(const a, b: vec): Cardinal; assembler;
asm
push ebx
push ecx
push edx
push esi
push edi
xor ebx, ebx
mov ecx, n*4
mov esi, a
mov edi, b
xor eax, eax
cld
@@l:
mov ax, word ptr [esi]
lea esi, [esi+2]
mul word ptr [edi]
lea edi, [edi+2]
shl edx, 16
mov dx, ax
add ebx, edx
dec ecx
jne @@l
mov eax, ebx
pop edi
pop esi
pop edx
pop ecx
pop ebx
end;
function vprod_asm2(const a, b: vec): Cardinal; assembler;
asm
push ebx
push ecx
push edx
push esi
push edi
xor ebx, ebx
mov ecx, n*4
mov esi, a
mov edi, b
xor eax, eax
cld
@@l:
lodsw
movzx edx, WORD PTR [edi]
imul edx
lea edi, [edi+2]
add ebx, eax
loop @@l
mov eax, ebx
pop edi
pop esi
pop edx
pop ecx
pop ebx
end;
function vprod_mmx (const a, b: vec): Cardinal; assembler;
var muls: record l, h: Cardinal end;
asm
push ebx
push ecx
push esi
push edi
mov ecx, n
mov esi, a
mov edi, b
xor eax, eax
lea ebx, muls
@@l:
db $0F,$6F,$06 // movq mm0, [esi]
db $0F,$F5,$07 // pmaddwd mm0, [edi]
lea esi, [esi+8]
db $0F,$7F,$03 // movq [ebx], mm0
lea edi, [edi+8]
add eax, [ebx]
add eax, [ebx+4]
loop @@l
db $0F,$77 // emms
pop edi
pop esi
pop ecx
pop ebx
end;
По просьбам трудящихся публикую модифицированную версию примера MMXTEST.PAS из комплекта компилятора TMT Pascal. Программа находит скалярное произведение двух векторов. Далее должен быть основной блок с фрагментами типа for i := 1 to 100000 do vprod(a, b); , которые я не стал публиковать ввиду ограничений. Функция vprod_asm1 — почти оригинальный код TMT, функция vprod_asm2 — мой оптимизированный вариант. Результаты запуска на двух машинах (таймер получал по RDTSC):
AMD K6-2-333 МГц, FSB 66 МГц.
Delphi7:
Pascal = 0.550 sec.
Asm x86 (original) = 1.034 sec.
Asm x86 (optimized) = 0.490 sec.
Asm MMX = 0.130 sec.
С директивой $O- первый результат 0.853 sec.
Замена loop на dec ecx + jne увеличивает результаты на 0,015 c.
FPC:
Pascal = 1.387 sec.
Asm x86 (original) = 1.199 sec.
Asm x86 (optimized) = 0.510 sec.
Asm MMX = 0.124 sec.
TMT:
Pascal = 0.914 sec.
Asm x86 (original) = 1.037 sec.
Asm x86 (optimized) = 0.494 sec.
Asm MMX = 0.126 sec.
VP:
Pascal = 0.520 sec.
Asm x86 (original) = 1.033 sec.
Asm x86 (optimized) = 0.493 sec.
Asm MMX = 0.146 sec.
С директивами $Q+,R+ первый результат 1.032 sec.
С директивой $Speed- первый результат 0.731 sec.
------------------------------
Celeron 1,86 ГГц, FSB 533 МГц.
Delphi7:
Pascal = 0.025 sec.
Asm x86 (original) = 0.091 sec.
Asm x86 (optimized) = 0.082 sec.
Asm MMX = 0.044 sec.
TMT:
Pascal = 0.109 sec.
Asm x86 (original) = 0.087 sec.
Asm x86 (optimized) = 0.079 sec.
Asm MMX = 0.042 sec.
IT Оффтоп #231
#201: https://govnokod.ru/28948 https://govnokod.xyz/_28948
#202: https://govnokod.ru/28951 https://govnokod.xyz/_28951
#203: https://govnokod.ru/28954 https://govnokod.xyz/_28954
#204: https://govnokod.ru/28971 https://govnokod.xyz/_28971
#205: https://govnokod.ru/28986 https://govnokod.xyz/_28986
#206: https://govnokod.ru/28991 https://govnokod.xyz/_28991
#207: https://govnokod.ru/29002 https://govnokod.xyz/_29002
#208: https://govnokod.ru/29060 https://govnokod.xyz/_29060
#209: https://govnokod.ru/29070 https://govnokod.xyz/_29070
#210: https://govnokod.ru/29079 https://govnokod.xyz/_29079
#211: https://govnokod.ru/29092 https://govnokod.xyz/_29092
#212: https://govnokod.ru/29093 https://govnokod.xyz/_29093
#213: https://govnokod.ru/29104 https://govnokod.xyz/_29104
#214: https://govnokod.ru/29114 https://govnokod.xyz/_29114
#215: https://govnokod.ru/29125 https://govnokod.xyz/_29125
#216: https://govnokod.ru/29132 https://govnokod.xyz/_29132
#217: https://govnokod.ru/29147 https://govnokod.xyz/_29147
#218: https://govnokod.ru/29156 https://govnokod.xyz/_29156
#219: https://govnokod.ru/29166 https://govnokod.xyz/_29166
#220: https://govnokod.ru/29181 https://govnokod.xyz/_29181
#221: https://govnokod.ru/29185 https://govnokod.xyz/_29185
#222: https://govnokod.ru/29190 https://govnokod.xyz/_29190
#223: https://govnokod.ru/29203 https://govnokod.xyz/_29203
#224: https://govnokod.ru/29211 https://govnokod.xyz/_29211
#225: https://govnokod.ru/29212 https://govnokod.xyz/_29212
#226: https://govnokod.ru/29218 https://govnokod.xyz/_29218
#227: https://govnokod.ru/29220 https://govnokod.xyz/_29220
#228: https://govnokod.ru/29230 https://govnokod.xyz/_29230
#229: https://govnokod.ru/29235 https://govnokod.xyz/_29235
#230: https://govnokod.ru/29241 https://govnokod.xyz/_29241
Просто оффтоп #42
#12: https://govnokod.ru/27153 https://govnokod.xyz/_27153
#13: https://govnokod.ru/27159 https://govnokod.xyz/_27159
#14: https://govnokod.ru/27200 https://govnokod.xyz/_27200
#15: https://govnokod.ru/27237 https://govnokod.xyz/_27237
#16: (vanished) https://govnokod.xyz/_27282
#17: https://govnokod.ru/27319 https://govnokod.xyz/_27319
#18: https://govnokod.ru/27380 https://govnokod.xyz/_27380
#19: (vanished) https://govnokod.xyz/_27500
#20: https://govnokod.ru/27607 https://govnokod.xyz/_27607
#21: https://govnokod.ru/27951 https://govnokod.xyz/_27951
#22: https://govnokod.ru/28076 https://govnokod.xyz/_28076
#23: https://govnokod.ru/28266 https://govnokod.xyz/_28266
#24: https://govnokod.ru/28373 https://govnokod.xyz/_28373
#25: https://govnokod.ru/28474 https://govnokod.xyz/_28474
#26: https://govnokod.ru/28563 https://govnokod.xyz/_28563
#27: https://govnokod.ru/28645 https://govnokod.xyz/_28645
#28: (vanished) https://govnokod.xyz/_28664
#29: https://govnokod.ru/28674 https://govnokod.xyz/_28674
#30: https://govnokod.ru/28680 https://govnokod.xyz/_28680
#31: https://govnokod.ru/28688 https://govnokod.xyz/_28688
#32: https://govnokod.ru/28695 https://govnokod.xyz/_28695
#33: https://govnokod.ru/28702 https://govnokod.xyz/_28702
#34: (vanished) https://govnokod.xyz/_28708
#35: https://govnokod.ru/28715 https://govnokod.xyz/_28715
#36: https://govnokod.ru/28725 https://govnokod.xyz/_28725
#37: https://govnokod.ru/28733 https://govnokod.xyz/_28733
#38: (vanished) https://govnokod.xyz/_28748
#39: https://govnokod.ru/28758 https://govnokod.xyz/_28758
#40: https://govnokod.ru/28885 https://govnokod.xyz/_28885
#41: https://govnokod.ru/29061 https://govnokod.xyz/_29061
public function getResource(): ResourceInterface
{
$locale = $this->localeRepository->getByKey($this->getCurrentLocaleKey());
return new Resource($locale->getKey());
}
Политота #34
#4: (vanished) https://govnokod.xyz/_24822
#5: https://govnokod.ru/24868 https://govnokod.xyz/_24868
#6: (vanished) https://govnokod.xyz/_26648
#7: https://govnokod.ru/26673 https://govnokod.xyz/_26673
#8: https://govnokod.ru/27052 https://govnokod.xyz/_27052
#9: (vanished) https://govnokod.xyz/_27852
#10: https://govnokod.ru/28060 https://govnokod.xyz/_28060
#11: https://govnokod.ru/28091 https://govnokod.xyz/_28091
#12: https://govnokod.ru/28103 https://govnokod.xyz/_28103
#13: https://govnokod.ru/28144 https://govnokod.xyz/_28144
#14: https://govnokod.ru/28270 https://govnokod.xyz/_28270
#15: https://govnokod.ru/28341 https://govnokod.xyz/_28341
#16: https://govnokod.ru/28379 https://govnokod.xyz/_28379
#17: https://govnokod.ru/28394 https://govnokod.xyz/_28394
#18: https://govnokod.ru/28440 https://govnokod.xyz/_28440
#19: https://govnokod.ru/28572 https://govnokod.xyz/_28572
#20: https://govnokod.ru/28656 https://govnokod.xyz/_28656
#21: (vanished) https://govnokod.xyz/_28666
#22: https://govnokod.ru/28676 https://govnokod.xyz/_28676
#23: https://govnokod.ru/28684 https://govnokod.xyz/_28684
#24: https://govnokod.ru/28691 https://govnokod.xyz/_28691
#25: https://govnokod.ru/28698 https://govnokod.xyz/_28698
#26: https://govnokod.ru/28704 https://govnokod.xyz/_28704
#27: https://govnokod.ru/28711 https://govnokod.xyz/_28711
#28: https://govnokod.ru/28721 https://govnokod.xyz/_28721
#29: https://govnokod.ru/28728 https://govnokod.xyz/_28728
#30: (vanished) https://govnokod.xyz/_28747
#31: https://govnokod.ru/28757 https://govnokod.xyz/_28757
#32: https://govnokod.ru/28770 https://govnokod.xyz/_28770
#33: https://govnokod.ru/28835 https://govnokod.xyz/_28835
template <typename T, typename... Ts>
struct StructureChain : T, StructureChain<Ts...>
{
StructureChain(const T &t, const Ts&... a) : T(t), StructureChain<Ts...>(a...)
{
((T*)this)->pNext = (StructureChain<Ts...>*)this;
}
};
template <typename T>
struct StructureChain<T> : T
{
StructureChain(const T &t) : T(t){}
};
// Positional arguments? Im my C++? It's more likely than you think!
template<typename T>
struct SetterFunc;
template<typename T, typename V>
struct SetterVal
{
const SetterFunc<T> &func;
const V &val;
SetterVal(const SetterFunc<T> &f, const V &v) : func(f), val(v){}
};
template<typename T>
struct SetterFunc
{
const T &func;
SetterFunc(const T &data)
: func(data)
{}
template <typename V>
SetterVal<T,V> operator() (const V &v) {return SetterVal(*this,v);}
template <typename V>
SetterVal<T,V> operator= (const V &v) {return SetterVal(*this,v);}
};
template <typename T, typename... Ts>
void FillStructure(T &t, const Ts&... ts)
{
auto filler = [](T &t, const auto &arg){
auto T::*ptr = arg.func.func(t);
t.*ptr = arg.val;
};
(filler(t,ts),...);
}
// todo: remove extra unused copy
#define $(k) SetterFunc([](auto a){return &decltype(a)::k;})
template <typename T, typename... Ts>
T $M(T t, const Ts&... ts)
{
FillStructure(t, ts...);
return t;
}
// ...
VkSubresourceLayout layout = {0};
layout.rowPitch = pitch1;
StructureChain iinfo{
$M(VkImageCreateInfo{VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO},
$(imageType) = VK_IMAGE_TYPE_2D,
$(format) = p010?VK_FORMAT_R16_UNORM:VK_FORMAT_R8_UNORM,
$(extent) = VkExtent3D{ WIDTH, HEIGHT, 1 },
$(mipLevels) = 1,
$(arrayLayers)= 1,
$(samples) =VK_SAMPLE_COUNT_1_BIT,
$(tiling) = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT,
$(usage) = VK_IMAGE_USAGE_STORAGE_BIT,
$(sharingMode) = VK_SHARING_MODE_EXCLUSIVE
),
$M(VkExternalMemoryImageCreateInfo{VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO},
$(handleTypes) = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT
),
$M(VkImageDrmFormatModifierExplicitCreateInfoEXT{VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT},
$(drmFormatModifierPlaneCount) = 1,
$(drmFormatModifier) = mod,
$(pPlaneLayouts) = &layout
)
};
VK_CHECK_RESULT(vkCreateImage(dev.device, &iinfo, NULL, &texture0.image)); // create image.
Positional arguments? Im my C++? It's more likely than you think!
Пиздец-оффтоп #127
#97: https://govnokod.ru/28918 https://govnokod.xyz/_28918
#98: https://govnokod.ru/28932 https://govnokod.xyz/_28932
#99: https://govnokod.ru/28936 https://govnokod.xyz/_28936
#100: https://govnokod.ru/28940 https://govnokod.xyz/_28940
#101: https://govnokod.ru/28949 https://govnokod.xyz/_28949
#102: https://govnokod.ru/28978 https://govnokod.xyz/_28978
#103: https://govnokod.ru/28982 https://govnokod.xyz/_28982
#104: https://govnokod.ru/28989 https://govnokod.xyz/_28989
#105: https://govnokod.ru/29052 https://govnokod.xyz/_29052
#106: https://govnokod.ru/29069 https://govnokod.xyz/_29069
#107: https://govnokod.ru/29086 https://govnokod.xyz/_29086
#108: https://govnokod.ru/29102 https://govnokod.xyz/_29102
#109: https://govnokod.ru/29126 https://govnokod.xyz/_29126
#110: https://govnokod.ru/29136 https://govnokod.xyz/_29136
#111: https://govnokod.ru/29142 https://govnokod.xyz/_29142
#112: https://govnokod.ru/29155 https://govnokod.xyz/_29155
#113: https://govnokod.ru/29160 https://govnokod.xyz/_29160
#114: https://govnokod.ru/29165 https://govnokod.xyz/_29165
#115: https://govnokod.ru/29173 https://govnokod.xyz/_29173
#116: https://govnokod.ru/29174 https://govnokod.xyz/_29174
#117: https://govnokod.ru/29182 https://govnokod.xyz/_29182
#118: https://govnokod.ru/29191 https://govnokod.xyz/_29191
#119: https://govnokod.ru/29196 https://govnokod.xyz/_29196
#120: https://govnokod.ru/29205 https://govnokod.xyz/_29205
#121: https://govnokod.ru/29216 https://govnokod.xyz/_29216
#122: https://govnokod.ru/29219 https://govnokod.xyz/_29219
#123: https://govnokod.ru/29232 https://govnokod.xyz/_29232
#124: https://govnokod.ru/29237 https://govnokod.xyz/_29237
#125: https://govnokod.ru/29239 https://govnokod.xyz/_29239
#126: https://govnokod.ru/29244 https://govnokod.xyz/_29244
MOPCKAR_CBNHNHA
7 дней назад
#
void add_SSE(uint8_t a[static 7], uint8_t b[static 7], uint8_t out[static 7])
{
uint64_t a_64 = 0;
uint64_t b_64 = 0;
for (size_t i = 0; i < 7; i++) // можно наанроллить
{
a_64 |= (uint64_t)a[i] << (i*9);
b_64 |= (uint64_t)b[i] << (i*9);
}
uint64_t c_64 = a_64 + b_64;
for (size_t i = 0; i < 7; i++) // можно наанроллить
{
out[i] = (uint64_t)c_64 >> (i*9);
}
}
SSE
Пиздец-оффтоп #124
#94: https://govnokod.ru/28895 https://govnokod.xyz/_28895
#95: https://govnokod.ru/28904 https://govnokod.xyz/_28904
#96: https://govnokod.ru/28912 https://govnokod.xyz/_28912
#97: https://govnokod.ru/28918 https://govnokod.xyz/_28918
#98: https://govnokod.ru/28932 https://govnokod.xyz/_28932
#99: https://govnokod.ru/28936 https://govnokod.xyz/_28936
#100: https://govnokod.ru/28940 https://govnokod.xyz/_28940
#101: https://govnokod.ru/28949 https://govnokod.xyz/_28949
#102: https://govnokod.ru/28978 https://govnokod.xyz/_28978
#103: https://govnokod.ru/28982 https://govnokod.xyz/_28982
#104: https://govnokod.ru/28989 https://govnokod.xyz/_28989
#105: https://govnokod.ru/29052 https://govnokod.xyz/_29052
#106: https://govnokod.ru/29069 https://govnokod.xyz/_29069
#107: https://govnokod.ru/29086 https://govnokod.xyz/_29086
#108: https://govnokod.ru/29102 https://govnokod.xyz/_29102
#109: https://govnokod.ru/29126 https://govnokod.xyz/_29126
#110: https://govnokod.ru/29136 https://govnokod.xyz/_29136
#111: https://govnokod.ru/29142 https://govnokod.xyz/_29142
#112: https://govnokod.ru/29155 https://govnokod.xyz/_29155
#113: https://govnokod.ru/29160 https://govnokod.xyz/_29160
#114: https://govnokod.ru/29165 https://govnokod.xyz/_29165
#115: https://govnokod.ru/29173 https://govnokod.xyz/_29173
#116: https://govnokod.ru/29174 https://govnokod.xyz/_29174
#117: https://govnokod.ru/29182 https://govnokod.xyz/_29182
#118: https://govnokod.ru/29191 https://govnokod.xyz/_29191
#119: https://govnokod.ru/29196 https://govnokod.xyz/_29196
#120: https://govnokod.ru/29205 https://govnokod.xyz/_29205
#121: https://govnokod.ru/29216 https://govnokod.xyz/_29216
#122: https://govnokod.ru/29219 https://govnokod.xyz/_29219
#123: https://govnokod.ru/29232 https://govnokod.xyz/_29232
Говновозный оффтоп #2
_.--,_......----..__
\ .' ' ```--...__ \
\; ' . '. ||
: ' ' \ .''.
.'; : ' .| |.--..___
/ \ | : :| /.------.\
/ .'._ : | || || |\\
/.-. /|-| `-. : ;| ||______|_\`.______
// // |-| \ ' ' / | ||=' | | `.
// //\\|-| `-._' ' .' | || | | \
/.-.// \\-|_________```------------` ___'. || | '_.--. <)
'._.' / .-----. .-----. .''''''''. |'--..____| / _ \ |
|_/.' '.\_/.' '.\_[ [ [ ] ] ]___|_________.'.' '.\ ]
: .-. : : .-. : '........' (_________): .-. :`-'
: '-' : : '-' : : '-' :
'._ _.' '._ _.' '._ _.'
#1: https://govnokod.ru/29062 https://govnokod.xyz/_29062
IT Оффтоп #110
#80: https://govnokod.ru/27270 https://govnokod.xyz/_27270
#81: https://govnokod.ru/27280 https://govnokod.xyz/_27280
#82: https://govnokod.ru/27284 https://govnokod.xyz/_27284
#83: https://govnokod.ru/27296 https://govnokod.xyz/_27296
#84: https://govnokod.ru/27336 https://govnokod.xyz/_27336
#85: https://govnokod.ru/27381 https://govnokod.xyz/_27381
#86: https://govnokod.ru/27405 https://govnokod.xyz/_27405
#87: https://govnokod.ru/27429 https://govnokod.xyz/_27429
#88: https://govnokod.ru/27432 https://govnokod.xyz/_27432
#89: https://govnokod.ru/27435 https://govnokod.xyz/_27435
#90: https://govnokod.ru/27439 https://govnokod.xyz/_27439
#91: https://govnokod.ru/27449 https://govnokod.xyz/_27449
#92: https://govnokod.ru/27460 https://govnokod.xyz/_27460
#93: https://govnokod.ru/27463 https://govnokod.xyz/_27463
#94: https://govnokod.ru/27466 https://govnokod.xyz/_27466
#95: https://govnokod.ru/27473 https://govnokod.xyz/_27473
#96: https://govnokod.ru/27478 https://govnokod.xyz/_27478
#97: https://govnokod.ru/27484 https://govnokod.xyz/_27484
#98: https://govnokod.ru/27495 https://govnokod.xyz/_27495
#99: https://govnokod.ru/27504 https://govnokod.xyz/_27504
#100: https://govnokod.ru/27508 https://govnokod.xyz/_27508
#101: https://govnokod.ru/27511 https://govnokod.xyz/_27511
#102: https://govnokod.ru/27518 https://govnokod.xyz/_27518
#103: https://govnokod.ru/27526 https://govnokod.xyz/_27526
#104: https://govnokod.ru/27534 https://govnokod.xyz/_27534
#105: https://govnokod.ru/27544 https://govnokod.xyz/_27544
#106: https://govnokod.ru/27552 https://govnokod.xyz/_27552
#107: https://govnokod.ru/27554 https://govnokod.xyz/_27554
#108: https://govnokod.ru/27557 https://govnokod.xyz/_27557
#109: https://govnokod.ru/27581 https://govnokod.xyz/_27581
IT Оффтоп #218
#188: https://govnokod.ru/28837 https://govnokod.xyz/_28837
#189: https://govnokod.ru/28840 https://govnokod.xyz/_28840
#190: https://govnokod.ru/28875 https://govnokod.xyz/_28875
#191: https://govnokod.ru/28878 https://govnokod.xyz/_28878
#192: https://govnokod.ru/28886 https://govnokod.xyz/_28886
#193: https://govnokod.ru/28911 https://govnokod.xyz/_28911
#194: https://govnokod.ru/28914 https://govnokod.xyz/_28914
#195: https://govnokod.ru/28917 https://govnokod.xyz/_28917
#196: https://govnokod.ru/28925 https://govnokod.xyz/_28925
#197: https://govnokod.ru/28935 https://govnokod.xyz/_28935
#198: https://govnokod.ru/28938 https://govnokod.xyz/_28938
#199: https://govnokod.ru/28942 https://govnokod.xyz/_28942
#200: https://govnokod.ru/28945 https://govnokod.xyz/_28945
#201: https://govnokod.ru/28948 https://govnokod.xyz/_28948
#202: https://govnokod.ru/28951 https://govnokod.xyz/_28951
#203: https://govnokod.ru/28954 https://govnokod.xyz/_28954
#204: https://govnokod.ru/28971 https://govnokod.xyz/_28971
#205: https://govnokod.ru/28986 https://govnokod.xyz/_28986
#206: https://govnokod.ru/28991 https://govnokod.xyz/_28991
#207: https://govnokod.ru/29002 https://govnokod.xyz/_29002
#208: https://govnokod.ru/29060 https://govnokod.xyz/_29060
#209: https://govnokod.ru/29070 https://govnokod.xyz/_29070
#210: https://govnokod.ru/29079 https://govnokod.xyz/_29079
#211: https://govnokod.ru/29092 https://govnokod.xyz/_29092
#212: https://govnokod.ru/29093 https://govnokod.xyz/_29093
#213: https://govnokod.ru/29104 https://govnokod.xyz/_29104
#214: https://govnokod.ru/29114 https://govnokod.xyz/_29114
#215: https://govnokod.ru/29125 https://govnokod.xyz/_29125
#216: https://govnokod.ru/29132 https://govnokod.xyz/_29132
#217: https://govnokod.ru/29147 https://govnokod.xyz/_29147
void MultipleSquareMatrix(Matrix*rres, Matrix*mul1, Matrix* mul2)
{
int N = mul1->height();
Matrix rmul1(N,N);
Matrix rmul2(N,N);
#define SM (CLS / sizeof (double))
for (i = 0; i < N; i += SM)
for (j = 0; j < N; j += SM)
for (k = 0; k < N; k += SM)
for (i2 = 0, rres = &res[i][j],
rmul1 = &mul1[i][k]; i2 < SM;
++i2, rres += N, rmul1 += N)
for (k2 = 0, rmul2 = &mul2[k][j];
k2 < SM; ++k2, rmul2 += N)
for (j2 = 0; j2 < SM; ++j2)
rres[j2] += rmul1[k2] * rmul2[j2];
}
Перемножение квадратных матриц.....
Я часто просыпаюсь в холодном поту: мне снится, как на сайте по продаже сигарет мне в анонимном режиме поставили куку с sessid не спросив разрешения. Слава богу нельзя теперь
а что моя переписка хранится черте где это зато надежно, бекап всё таки