g | x | w | all
Bytes Lang Time Link
004Uiua241024T231959Znyxbird
003Vyxal241024T224203Zemanresu
040Ruby 2.7200803T044955ZRazetime
005J230622T063821Zsouth
003Nekomata + e230622T042131Zalephalp
032Scala200803T195448Zuser
007k221117T002203Zcillianr
028Juby221116T222944ZJordan
026Raku220927T163732ZSean
047Haskell200804T190229ZAZTECCO
040Haskell220926T230159Zxnor
019Factor + math.matrices220926T212221Zchunes
041Google Sheets200807T211959ZGeneral
086Java JDK200807T192034Zuser
00305AB1E201021T091332ZKevin Cr
003Jelly201021T082448ZRazetime
005Husk201021T070417ZRazetime
067Io200803T012346Zuser9649
009Julia 1.0200803T223733ZTimD
064C gcc200803T053508Zatt
007Wolfram Mathematica200803T180442Zpolfosol
008gorbitsaROM200803T101358ZNoone At
010Charcoal200803T092925ZNeil
005Japt200803T013115ZAZTECCO
042JavaScript ES6200803T082559ZArnauld
023R200803T062704ZRobin Ry
005Brachylog200803T044814ZDLosc
005Pip200803T043746ZDLosc
005Pyth200803T043226ZMukundan
019Octave200803T033249ZDaniel H
005MATL200803T032615ZMukundan
045Python 2200803T012732ZChas Bro
003APL Dyalog Unicode200803T005725ZBubbler

Uiua, 4 bytes

≍¯⊸⍉

Try it!

Does the ¯ negated ⍉ transposition ≍ match the input (⊸)?

Vyxal, 3 bytes

∩N⁼

Try it Online!

∩   # Transpose
 N  # Negate
  ⁼ # Equal to original?

Ruby 2.7, 40 bytes

->a{a==a.transpose.map{|r|r.map{|c|-c}}}

Try it online!

J, 5 bytes

--:|:

Attempt This Online!

--:|:
-      NB. negate
   |:  NB. transpose
 -:    NB. match?

Nekomata + -e, 3 bytes

Ť_=

Attempt This Online!

Ť     Transpose
 _    Negate
  =   Check equality

Scala, 32 bytes

l=>l.transpose==l.map(_.map(-_))

Finally, something that Scala has a builtin for!

The function's pretty straightforward - it compares the transpose of a List[List[Int]](doesn't have to be a List, could be any Iterable) to the negative, found by mapping each list inside l and using - to make it negative.

Try it in Scastie

k, 7 bytes

Similar to the APL solution. Compare (x~) original matrix against negated transpose (-+x}

{x~-+x}

J-uby, 28 bytes

Port of Razetime's Ruby answer.

:=~&(:transpose|:*&(:*&:-@))

Attempt This Online!

Explanation

:=~ & (:transpose | :* & (:* & :-@))

       :transpose |                   # Transpose input, then
                    :* & (        )   # Map with
                          :* & :-@    #   Map with negate
:=~ & (                            )  # Equal to input

Raku, 26 bytes

{none flat $_ »+«[Z] $_}

Try it online!

The none-junction is returned. It is truthy only if adding the matrix to its transpose results in a matrix containing all zeroes.

Haskell, 49 47 bytes

import Data.List 
f x=x==transpose(map(0-)<$>x)

Try it online!

My first Haskell.
Function tacking a matrix and checking if input is equal to input mapped to (0-value) and transposed

Haskell, 40 bytes

(==)<*>foldr(zipWith(:).map(0-))z
z=[]:z

Try it online!

Uses this tip for shorter transpose and the idiom of (==)<*> to check invariance under an operation.

Factor + math.matrices, 19 bytes

[ dup flip mneg = ]

Try it online!

Google Sheets, 90 88 41

(Now with lambdas)

Closing parens discounted.

Named Functions (name, args, and formula text all count):

Name args Formula
P a, b a+b
Q a MAP(a,TRANSPOSE(a),P)

Formula:

=SUM(Q(A1:C3))

No, I cannot currently use ADD instead of P as it is not a lambda.

How it Works:

Add the matrix to its transpose. If the resulting matrix is all 0's, then the sum of all elements is 0, which means we the two are equal.

Return 0 if equal, some positive number otherwise.

Java (JDK), 89 87 86 bytes

m->{int i=0,j,r=1;for(;++i<m.length;)for(j=0;++j<i;)r=m[i][j]!=-m[j][i]?0:r;return r;}

Try it online!

Returns 0 for false and 1 for true.

05AB1E, 3 bytes

ø(Q

Try it online or verify all test cases.

Explanation:

ø    # Zip/transpose the (implicit) input-matrix; swapping rows/columns
 (   # Negate each value in this transposed matrix
  Q  # And check if it's equal to the (implicit) input-matrix
     # (after which the result is output implicitly)

Jelly, 3 bytes

N⁼Z

Try it online!

Posting before caird coinheringaahing finds this question.

Husk, 5 bytes

§=T†_

Try it online!

Io, 67 bytes

method(~,~map(i,\,\map(I,V,V+x at(I)at(i)))flatten unique==list(0))

Try it online!

Explanation

For all a[x][y], it checks whether all a[x][y]+a[y][x]==0.

method(~,                                 // Input x.
    ~ map(i,\,                            // Map all x's rows (index i):
        \ map(I,V,                        //     Foreach the rows (index I):
            V+x at(I)at(i)                //         x[i][I] + x[I][i]
        )
    ) flatten                             // Flatten the resulting list
    unique                                // Uniquify the list
    ==list(0)                             // Does this resulting list *only* contain the item 0?
)

Julia 1.0, 9 bytes

A->A==-A'

A straightforward anonymous function checking the equality.

Try it online!

C (gcc), 67 64 bytes

-3 thanks to AZTECCO

i,j;f(m,s)int**m;{for(i=j=0;i=i?:s--;)j|=m[s][--i]+m[i][s];m=j;}

Try it online!

Returns 0 if the matrix is antisymmetric, and a nonzero value otherewise.

Wolfram Mathematica, 20, 7 bytes

There is a built-in function for this task:

AntisymmetricMatrixQ

But one can simply write a script with less byte counts:

#==-#ᵀ&

The ᵀ character, as it is displayed in notebooks, stands for transpose. But if you copy this into tio, it won't be recognized because these characters are only supported by Mathematica notebooks.

gorbitsa-ROM, 8 bytes

r1 R A1 B0 T

This is an awful abuse of rule

Input and output can assume whatever forms are most convenient.

If input takes form of "arr[i][j] arr[j][i]", the problem becomes "is sum = 0?".
This code takes pairs of values and outputs their sum if it's not 0

Thus if you provide matrix as previously mentioned pairs, code will return some value for not-anti-symmetric ones and will not return anything for anti-symmetric ones.

r1 R A1 B0 T
r1           #store first number
   R         #read second number
     A1      #add first number
        B0   #if sum==0, jump to the beginning
           T #else output the sum

Charcoal, 10 bytes

⁼θEθEθ±§λκ

Try it online! Link is to verbose version of code. Outputs a Charcoal boolean, i.e. - if the matrix is antisymmetric, nothing if not. Explanation:

  Eθ        Map over input matrix rows (should be columns, but it's square)
    Eθ      Map over input matrix rows
       §λκ  Cell of transpose
      ±     Negated
⁼θ          Does matrix equal its negated transpose?

Japt, 5 bytes

eUy®n

Try it

e       compare input with :
 Uy       columns of input
   ®n     with each element negated

Previous version ÕeËËn didn't work, corrected using the ® symbol

JavaScript (ES6), 42 bytes

Returns false for antisymmetric or true for non-antisymmetric.

m=>m.some((r,y)=>r.some((v,x)=>m[x][y]+v))

Try it online!

R, 23 bytes

function(m)!any(m+t(m))

Try it online!

Checks whether there are any non-zero elements in \$M+M^T\$.

Brachylog, 5 bytes

5 bytes seems to be the right length for this (unless you're Jelly). Actually, this would be three bytes if Brachylog implicitly vectorized predicates like negation.

\ṅᵐ²?

Try it online!

Explanation

\      Transpose
 ṅᵐ²   Map negation at depth 2
    ?  Assert that the result is the same as the input

Pip, 5 bytes

Z_=-_

A function submission; pass a nested list as its argument. Try it online!

Explanation

Z_     The argument, zipped together
  =    Equals
   -_  The argument, negated

Pyth, 5 bytes

qC_MM

Try it online!

Explanation

qC_MM
q      : Check if input equals
 C     : Transpose of
  _MM  : Negated input

Octave, 19 bytes

@(a)isequal(a',-a);

Try it online!

The semicolon doesn't need to be there, but it outputs the function otherwise, so I'll take the one-byte hit to my score for now.

Explanation

It's pretty straightforward - it checks to see if the matrix of the transpose is equal to the negative matrix

MATL, 5 bytes

!_GX=

Try it online!

Explanation

!_GX=
        // Implicit input on top of stack
!       // Replace top stack element with its transpose
 _      // Replace top stack element with its negative
  G     // Push input onto stack
   X=   // Check for equality

Python 2, 45 bytes

lambda A:A==[[-x for x in R]for R in zip(*A)]

Try it online!

APL (Dyalog Unicode), 3 bytes

-≡⍉

Try it online!

This is exactly an APLcart entry on "antisymmetric". Basically it checks if the input's negative - matches ≡ the input's transpose ⍉.