<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi,<br>
    <blockquote cite="mid:55F7581D.2070301@mi.fu-berlin.de" type="cite">
      <pre wrap="">
a)We derive MultiIndex<class size_type, size_type i> from e.g.
  array and implement the cast to size_type for i=1.</pre>
    </blockquote>
    this sounds nice.  However, this is basically the same trick that is
    supposed<br>
    to make FieldVector<T,1> look like a plain T.  In my
    experience that never really<br>
    worked.  On the other hand, the interface of a multi-index is much
    more restricted<br>
    than that of a FV, so maybe the approach works better here.<br>
    <br>
    <br>
    <blockquote cite="mid:55F7581D.2070301@mi.fu-berlin.de" type="cite">
      <pre wrap="">
b)The result of basis.size() without prefix is no longer
  the same as the one with an empty prefix, but an object
  providing operator()(Prefix) and a cast to size_type.
  In the trivial case the result of this cast should be
  either the same as for an empty prefix or as dimension.</pre>
    </blockquote>
    That's your proposal from 0:49, right?  I kinda like that.<br>
    Best,<br>
    Oliver<br>
    <br>
    <blockquote cite="mid:55F7581D.2070301@mi.fu-berlin.de" type="cite">
      <pre wrap="">

Then we can use a simple vector if the index is flat
or a wrapped hierarchic one in other cases.

Carsten

Am 15.09.2015 um 00:49 schrieb Carsten Gräser:
</pre>
      <blockquote type="cite">
        <pre wrap="">Hi Oliver,

Am 14.09.2015 um 22:55 schrieb Carsten Gräser:
[...]
</pre>
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="">... which is kind-of ugly, as a matter of fact.  I keep thinking that maybe
we should replace array<size_t,1> by size_t whenever that appears as
a multi-index.
</pre>
          </blockquote>
          <pre wrap="">But this would mean to teach users things that will not work
in general. Even worse you cannot write code that works in both,
the simple and not so simple cases. If you really think it's so ugly
we may consider to derive from array and add a cast to size_t
in the simple case. However I'd prefer to hide the complicated
multiindex stuff in a simple wrapper (that's the backend) that
can also be explained easily.

Best,
Carsten

</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre wrap="">Maybe a cleaner solution would be, to provide some kind of vector
adaptor providing operator()(MultiIndex) and a hierachic resize.
Then we would write

  SomeVector v;
  auto&& v_coeff = basisCoefficients(v, basis);
  v_coeff.resize();
  interpolate(v_coeff, treePath, f);

This would also allow to exchange the now hard wired backend
more easily.
</pre>
            </blockquote>
            <pre wrap="">Possibly.
</pre>
          </blockquote>
        </blockquote>
        <pre wrap="">if this is implemented as operator[] instead and the cast proposed
above is also implemented it has the nice side effect, that we can
(almost) use a flat vector in simple cases and a wrapped one in the
complicated ones. It's only 'almost', because we have to write

  v.resize(basis.size());

in the simple case, whereas we need something like

  v.resize(basis);

in the complicated ones. If we change the interface of basis.size()
without prefix to return some object that provides all size information
we can even get around this.

Best,
Carsten



</pre>
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="">
Best,
Oliver

</pre>
            <blockquote type="cite">
              <pre wrap="">Best,
Carsten
</pre>
            </blockquote>
          </blockquote>
          <pre wrap="">


_______________________________________________
dune-functions mailing list
<a class="moz-txt-link-abbreviated" href="mailto:dune-functions@dune-project.org">dune-functions@dune-project.org</a>
<a class="moz-txt-link-freetext" href="http://lists.dune-project.org/mailman/listinfo/dune-functions">http://lists.dune-project.org/mailman/listinfo/dune-functions</a>

</pre>
        </blockquote>
        <pre wrap="">



_______________________________________________
dune-functions mailing list
<a class="moz-txt-link-abbreviated" href="mailto:dune-functions@dune-project.org">dune-functions@dune-project.org</a>
<a class="moz-txt-link-freetext" href="http://lists.dune-project.org/mailman/listinfo/dune-functions">http://lists.dune-project.org/mailman/listinfo/dune-functions</a>

</pre>
      </blockquote>
      <pre wrap="">

</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
dune-functions mailing list
<a class="moz-txt-link-abbreviated" href="mailto:dune-functions@dune-project.org">dune-functions@dune-project.org</a>
<a class="moz-txt-link-freetext" href="http://lists.dune-project.org/mailman/listinfo/dune-functions">http://lists.dune-project.org/mailman/listinfo/dune-functions</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>