2026-01-28 06:16:04 +00:00

59 lines
1.4 KiB
C

//
// Created by sjt on 3/1/23.
//
#include <stdlib.h>
#include <stdio.h>
#include "Operators_imp.h"
void cast(){
int8_t* input0 = (int8_t*)malloc(100*sizeof(int8_t));
for(size_t i=0; i<100; i++) {
input0[i] = i;
}
int8_t * output = (int8_t*)malloc(100*sizeof(int8_t));
//set up tensors
C_Tensors inputs, weights, outputs;
{
inputs.counts = 1;
inputs.tensor[0].data = (float*)input0;
inputs.tensor[0].shape.axes = 4;
inputs.tensor[0].data_type = INT8_T;
inputs.tensor[0].shape.dim[0] = 1;
inputs.tensor[0].shape.dim[1] = 2;
inputs.tensor[0].shape.dim[2] = 3;
inputs.tensor[0].shape.dim[3] = 4;
}
{
outputs.counts = 1;
outputs.tensor[0].data = (float*)output;
outputs.tensor[0].shape.axes = 4;
outputs.tensor[0].shape.dim[0] = 1;
outputs.tensor[0].shape.dim[1] = 2;
outputs.tensor[0].shape.dim[2] = 3;
outputs.tensor[0].shape.dim[3] = 4;
}
ElementUnaryOpAttribute attr;
attr.fn_ = copy_fn;
attr.name_ = "Cast";
ElementUnaryOperator_Run(&inputs, &weights, &outputs, &attr);
size_t input_size = getSize(&inputs, 0);
for(size_t i=0; i<input_size; i++) {
if(input0[i] != output[i]) {
printf("cast not correct, please check\n");
}
}
free(input0);
free(output);
}
int main(int argc, char** argv){
cast();
return 0;
}