Initial commit
This commit is contained in:
42
break_script/parse_csv.jl
Executable file
42
break_script/parse_csv.jl
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env julia
|
||||
|
||||
import CSV
|
||||
using Formatting
|
||||
|
||||
function parse_csv(filename)
|
||||
println("Starting parsing")
|
||||
data = CSV.read(filename, header=0)
|
||||
println("Parsing done")
|
||||
plaintexts::Matrix{UInt8} = convert(Matrix{UInt8}, data[:, 1:16])
|
||||
timings::Matrix{UInt32} = convert(Matrix{UInt32}, data[:, 17:17])
|
||||
write_data("plaintexts.dat", plaintexts)
|
||||
write_data("timings.dat", timings)
|
||||
end
|
||||
|
||||
function write_data(destination, data)
|
||||
open(destination, "w") do file
|
||||
field_size::UInt8 = sizeof(eltype(data))
|
||||
rows::UInt64 = size(data, 1)
|
||||
cols::UInt64 = size(data, 2)
|
||||
write(file, field_size);
|
||||
write(file, rows)
|
||||
write(file, cols)
|
||||
write(file, data)
|
||||
end
|
||||
end
|
||||
|
||||
function load_file(filename, type::Type{T})::Matrix{T} where T
|
||||
open(filename, "r") do file
|
||||
field_size = read(file, UInt8)
|
||||
if field_size != sizeof(T)
|
||||
throw(ArgumentError(format("Expected type of size {:d} but passed type '{}' has size {:d}", field_size, T, sizeof(T))))
|
||||
end
|
||||
rows = read(file, UInt64)
|
||||
cols = read(file, UInt64)
|
||||
data = Matrix{T}(undef, rows, cols)
|
||||
read!(file, data)
|
||||
return data
|
||||
end
|
||||
end
|
||||
|
||||
@time parse_csv("timing.csv")
|
||||
Reference in New Issue
Block a user