This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const | |
Identity = [ | |
[1, 0, 0], | |
[0, 1, 0], | |
[0, 0, 1] | |
] | |
Identity = Matrix([ | |
[1, 0, 0], | |
[0, 1, 0], |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const CacheLineSize = 32 # true for most archs | |
type | |
Barrier {.compilerProc.} = object | |
entered: int | |
cv: CondVar # condvar takes 3 words at least | |
when sizeof(int) < 8: | |
cacheAlign: array[CacheLineSize-4*sizeof(int), byte] | |
left: int | |
cacheAlign2: array[CacheLineSize-sizeof(int), byte] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import threadpool, tables, strutils | |
var db {.threadvar.}: CountTable[string] | |
proc rawPut(key: string) = | |
inc(db, key) | |
proc rawInit() = | |
db = initCountTable[string]() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var | |
a: array[2, Thread[int]] | |
proc worker(x: int) = | |
while true: | |
echo x | |
createThread(a[0], worker, 1) | |
createThread(a[1], worker, 2) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
proc parseBool(s: string): bool = | |
case normalize(s) | |
of "y", "yes", "true", "1", "on": result = true | |
of "n", "no", "false", "0", "off": result = false | |
else: raise newException(EInvalidValue, "cannot interpret as a bool: " & s) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# | |
# Nimrod's Runtime Library | |
# (c) Copyright 2011 Andreas Rumpf | |
# | |
# See the file "copying.txt", included in this | |
# distribution, for details about the copyright. | |
# | |
## This module implements big integers for Nimrod. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# module A | |
when not defined(dolog): | |
template dolog(msg: string) = nil | |
proc whatever() = | |
dolog "start of whatever" | |
doSomeWork | |
dolog "end of whatever" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
type | |
TUtf16Char = distinct int16 | |
WideCString = ptr array[0.. 1_000_000, TUtf16Char] | |
const | |
utf8Encoding = 65001 | |
proc len(w: WideCString): int = |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
discard """ | |
disabled: false | |
""" | |
import math, algorithm | |
proc sorted[T](a: openArray[T], order: TSortOrder): bool = | |
result = true | |
for i in 0 .. < a.high: | |
if cmp(a[i], a[i+1]) * order > 0: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
proc p = | |
var delta = 7 | |
proc accumulator(start: int): proc(): int = | |
var x = start-1 | |
result = proc (): int = | |
x = x + delta | |
inc delta | |
return x | |
var a = accumulator(3) |
OlderNewer