// This file generated for packaging, do not edit.
// To edit, see original source:
// /home/runner/work/farm-ng-core/farm-ng-core/protos/farm_ng/core/linalg.proto.
//
//    Copyright 2022, farm-ng inc.
//
//    Licensed under the Apache License, Version 2.0 (the "License");
//    you may not use this file except in compliance with the License.
//    You may obtain a copy of the License at
//
//        http://www.apache.org/licenses/LICENSE-2.0
//
//    Unless required by applicable law or agreed to in writing, software
//    distributed under the License is distributed on an "AS IS" BASIS,
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//    See the License for the specific language governing permissions and
//    limitations under the License.

syntax = "proto3";

package farm_ng.core.proto;

message Vec2I64 {
  int64 x = 1;
  int64 y = 2;
}

message Vec2F32 {
  float x = 1;
  float y = 2;
}

message Vec2F64 {
  double x = 1;
  double y = 2;
}

message Vec3I64 {
  int64 x = 1;
  int64 y = 2;
  int64 z = 3;
}

message Vec3F32 {
  float x = 1;
  float y = 2;
  float z = 3;
}

message Vec3F64 {
  double x = 1;
  double y = 2;
  double z = 3;
}

message Mat2F32 {
  Vec2F32 col_0 = 1;
  Vec2F32 col_1 = 2;
}

message Mat2F64 {
  Vec2F64 col_0 = 1;
  Vec2F64 col_1 = 2;
}

message Mat3F32 {
  Vec3F32 col_0 = 1;
  Vec3F32 col_1 = 2;
  Vec3F32 col_2 = 3;
}

message Mat3F64 {
  Vec3F64 col_0 = 1;
  Vec3F64 col_1 = 2;
  Vec3F64 col_2 = 3;
}

message VecXF32 {
   repeated float data = 1;
}

message VecXF64 {
   repeated double data = 1;
}

message MatXF32 {
   int32 rows =1;
   int32 cols =2;
   repeated float data = 3;
}

message MatXF64 {
   int32 rows =1;
   int32 cols =2;
   repeated float data = 3;
}
