import numpy as np
 
# Vector: shape (3,)
vec1 = np.array([1.0, 1.0, 1.0])
 
# 3D tensor with shape (2, 3, 4) in column-major order
data = np.array([
    1.0, 2.0, 3.0, 4.0,
    5.0, 6.0, 7.0, 8.0,
    9.0, 10.0, 11.0, 12.0,
    13.0, 14.0, 15.0, 16.0,
    17.0, 18.0, 19.0, 20.0,
    21.0, 22.0, 23.0, 24.0
])
 
# Reshape using 'F' (Fortran/column-major) order
mat3d = data.reshape((2, 3, 4), order='F')
 
# Dot product: contracts over dimension 1 of mat3d with vec1
result1 = np.tensordot(vec1, mat3d, axes=([0], [1]))
 
# Or equivalently using einsum notation:
# result1 = np.einsum('i,jik->jk', vec1, mat3d)
 
print("Result shape:", result1.shape)  # (2, 4)
print("Result:")
print(result1)
 
				aW1wb3J0IG51bXB5IGFzIG5wCgojIFZlY3Rvcjogc2hhcGUgKDMsKQp2ZWMxID0gbnAuYXJyYXkoWzEuMCwgMS4wLCAxLjBdKQoKIyAzRCB0ZW5zb3Igd2l0aCBzaGFwZSAoMiwgMywgNCkgaW4gY29sdW1uLW1ham9yIG9yZGVyCmRhdGEgPSBucC5hcnJheShbCiAgICAxLjAsIDIuMCwgMy4wLCA0LjAsCiAgICA1LjAsIDYuMCwgNy4wLCA4LjAsCiAgICA5LjAsIDEwLjAsIDExLjAsIDEyLjAsCiAgICAxMy4wLCAxNC4wLCAxNS4wLCAxNi4wLAogICAgMTcuMCwgMTguMCwgMTkuMCwgMjAuMCwKICAgIDIxLjAsIDIyLjAsIDIzLjAsIDI0LjAKXSkKCiMgUmVzaGFwZSB1c2luZyAnRicgKEZvcnRyYW4vY29sdW1uLW1ham9yKSBvcmRlcgptYXQzZCA9IGRhdGEucmVzaGFwZSgoMiwgMywgNCksIG9yZGVyPSdGJykKCiMgRG90IHByb2R1Y3Q6IGNvbnRyYWN0cyBvdmVyIGRpbWVuc2lvbiAxIG9mIG1hdDNkIHdpdGggdmVjMQpyZXN1bHQxID0gbnAudGVuc29yZG90KHZlYzEsIG1hdDNkLCBheGVzPShbMF0sIFsxXSkpCgojIE9yIGVxdWl2YWxlbnRseSB1c2luZyBlaW5zdW0gbm90YXRpb246CiMgcmVzdWx0MSA9IG5wLmVpbnN1bSgnaSxqaWstPmprJywgdmVjMSwgbWF0M2QpCgpwcmludCgiUmVzdWx0IHNoYXBlOiIsIHJlc3VsdDEuc2hhcGUpICAjICgyLCA0KQpwcmludCgiUmVzdWx0OiIpCnByaW50KHJlc3VsdDEpCg==